Record Class ScenarioOutcome

java.lang.Object
java.lang.Record
com.eqixiac.equinix.design.resilience.ScenarioOutcome
Record Components:
scenario - the scenario
verdict - the outcome
serviceIndex - mean over placed workloads of their service index, 0..1
relativeSurvival - serviceIndex divided by the baseline's (1 = nothing lost); 0..1
siteWeightAffected - share of site weight that lost a workload it reached at baseline (or newly breaks a latency limit), 0..1
siteWeightDisconnected - share of site weight with no surviving access circuit, 0..1
workloadsAffected - workloads that lost anything
workloadsDown - workloads that went down
requiredCloudsAffected - required clouds some workload reached at baseline and no longer reaches
demandMbps - sized cloud demand the baseline serves, Mbps
servedMbps - of it, what the surviving connections carry, Mbps
shortfallMbps - demandMbps - servedMbps
constraintBreaks - latency limits broken in this scenario (workload maxLatencyMs, spec maxLatencyMs)
zoneViolations - active paths that leave the spec's geoZones
workloads - one outcome per placed workload
connectionLoadMbps - per cloud connection edge id: the sized bandwidth routed onto it in this scenario

public record ScenarioOutcome(FailureScenario scenario, Verdict verdict, double serviceIndex, double relativeSurvival, double siteWeightAffected, double siteWeightDisconnected, List<String> workloadsAffected, List<String> workloadsDown, List<String> requiredCloudsAffected, double demandMbps, double servedMbps, double shortfallMbps, List<String> constraintBreaks, List<String> zoneViolations, List<WorkloadOutcome> workloads, Map<String,Double> connectionLoadMbps) extends Record
What still works in one scenario, compared with the baseline.
  • Constructor Details

    • ScenarioOutcome

      public ScenarioOutcome(FailureScenario scenario, Verdict verdict, double serviceIndex, double relativeSurvival, double siteWeightAffected, double siteWeightDisconnected, List<String> workloadsAffected, List<String> workloadsDown, List<String> requiredCloudsAffected, double demandMbps, double servedMbps, double shortfallMbps, List<String> constraintBreaks, List<String> zoneViolations, List<WorkloadOutcome> workloads, Map<String,Double> connectionLoadMbps)
      Makes the lists immutable and non-null.
  • Method Details

    • capacityShare

      public double capacityShare()
      Returns:
      the share of the baseline's sized cloud demand still carried, 0..1 (1 when there is no sized demand)
    • impact

      public double impact()
      The blast radius: how much of the design is lost, 0 (nothing) to 1 (everything), used to rank scenarios worst first.
      Returns:
      1 - relativeSurvival
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • scenario

      public FailureScenario scenario()
      Returns the value of the scenario record component.
      Returns:
      the value of the scenario record component
    • verdict

      public Verdict verdict()
      Returns the value of the verdict record component.
      Returns:
      the value of the verdict record component
    • serviceIndex

      public double serviceIndex()
      Returns the value of the serviceIndex record component.
      Returns:
      the value of the serviceIndex record component
    • relativeSurvival

      public double relativeSurvival()
      Returns the value of the relativeSurvival record component.
      Returns:
      the value of the relativeSurvival record component
    • siteWeightAffected

      public double siteWeightAffected()
      Returns the value of the siteWeightAffected record component.
      Returns:
      the value of the siteWeightAffected record component
    • siteWeightDisconnected

      public double siteWeightDisconnected()
      Returns the value of the siteWeightDisconnected record component.
      Returns:
      the value of the siteWeightDisconnected record component
    • workloadsAffected

      public List<String> workloadsAffected()
      Returns the value of the workloadsAffected record component.
      Returns:
      the value of the workloadsAffected record component
    • workloadsDown

      public List<String> workloadsDown()
      Returns the value of the workloadsDown record component.
      Returns:
      the value of the workloadsDown record component
    • requiredCloudsAffected

      public List<String> requiredCloudsAffected()
      Returns the value of the requiredCloudsAffected record component.
      Returns:
      the value of the requiredCloudsAffected record component
    • demandMbps

      public double demandMbps()
      Returns the value of the demandMbps record component.
      Returns:
      the value of the demandMbps record component
    • servedMbps

      public double servedMbps()
      Returns the value of the servedMbps record component.
      Returns:
      the value of the servedMbps record component
    • shortfallMbps

      public double shortfallMbps()
      Returns the value of the shortfallMbps record component.
      Returns:
      the value of the shortfallMbps record component
    • constraintBreaks

      public List<String> constraintBreaks()
      Returns the value of the constraintBreaks record component.
      Returns:
      the value of the constraintBreaks record component
    • zoneViolations

      public List<String> zoneViolations()
      Returns the value of the zoneViolations record component.
      Returns:
      the value of the zoneViolations record component
    • workloads

      public List<WorkloadOutcome> workloads()
      Returns the value of the workloads record component.
      Returns:
      the value of the workloads record component
    • connectionLoadMbps

      public Map<String,Double> connectionLoadMbps()
      Returns the value of the connectionLoadMbps record component.
      Returns:
      the value of the connectionLoadMbps record component