Skip to main content

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.3677

Attributes

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.

Back to top