AvailabilityScenario
Reliability scenarios · Implementation: mlsysim/engine/scenario_definitions/reliability.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
A job that needs all n_components, each up a fraction availability of the time.
Notes
Equation: Compose mlsysim.physics.reliability.calc_all_up_availability, mlsysim.physics.reliability.calc_downtime, mlsysim.physics.reliability.calc_availability_stacked.
Assumptions: Components or replicas have identical stationary independent uptime probabilities; the job needs every component while the replicated service needs any replica.
Excludes: Shared failure domains and failover delay are absent.
References
Derivation: this scenario binds its input fields to the referenced implementation contracts: mlsysim.physics.reliability.calc_all_up_availability, mlsysim.physics.reliability.calc_downtime, mlsysim.physics.reliability.calc_availability_stacked. The methods below identify any additional arithmetic.
Examples
>>> from mlsysim import Scenarios
>>> case = Scenarios.NodeAvailability1K
>>> round(case.all_up, 4)
0.3677Attributes
| Name | Description |
|---|---|
| all_up | Probability that every required component is simultaneously up. Equation: |
| any_up | Availability of independent replicas when one surviving replica is sufficient. Equation: |
| availability | |
| downtime_per_year | Expected single-component downtime over the package’s year convention. Equation: |
| n_components | |
| replicas | |
| replicated_downtime_per_year | Expected outage of the any-replica-up service over the modeled year. Equation: |
Methods
| Name | Description |
|---|---|
| downtime | Expected single-component downtime over the supplied duration. Equation: |
| required_availability | Per-component uptime needed for a target all-up probability. Equation: ``all_up_target |
downtime
engine.scenario_types.AvailabilityScenario.downtime(interval)Expected single-component downtime over the supplied duration. Equation: mlsysim.physics.reliability.calc_downtime(availability, interval). Units: time; availability is treated as stationary.
required_availability
engine.scenario_types.AvailabilityScenario.required_availability(all_up_target)Per-component uptime needed for a target all-up probability. Equation: all_up_target ** (1 / n_components). Units: probability; assumes identical independent components.
Per-component availability that keeps all_up at all_up_target (added 2026-10-20).
availability
Type: float.
Declared default: required.
n_components
Type: int.
Declared default: required.
all_up
engine.scenario_types.AvailabilityScenario.all_up
Probability that every required component is simultaneously up. Equation: mlsysim.physics.reliability.calc_all_up_availability(availability, n_components). Units: probability; independent component states are assumed.
downtime_per_year
engine.scenario_types.AvailabilityScenario.downtime_per_year
Expected single-component downtime over the package’s year convention. Equation: downtime(DAYS_PER_YEAR days). Units: minutes; this does not describe all-component job uptime.
replicas
Type: int.
Declared default: 1.
any_up
engine.scenario_types.AvailabilityScenario.any_up
Availability of independent replicas when one surviving replica is sufficient. Equation: mlsysim.physics.reliability.calc_availability_stacked(availability, replicas). Units: probability; correlated failures are excluded.
replicated_downtime_per_year
engine.scenario_types.AvailabilityScenario.replicated_downtime_per_year
Expected outage of the any-replica-up service over the modeled year. Equation: calc_downtime(any_up, DAYS_PER_YEAR days). Units: minutes; assumes successful failover and independent replica states.