Skip to main content

BlindRetryScenario

Agents scenarios · Implementation: mlsysim/engine/scenario_definitions/agents.py.

Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.

Mutating calls retried once after any timeout, with independent request and reply loss.

Notes

Equation: Calls=workers*calls_per_worker; duplicate and timeout expectations come from BlindRetryModel.

Assumptions: Independent request/reply losses and one blind retry; cost properties treat the workload as daily.

Excludes: Correlated loss, idempotency safeguards, and distributions of duplicate harm.

References

Implementation reference: mlsysim.solvers.BlindRetryModel.solve documents the composed equation and its sources.

Examples

The named registry scenario supplies the stated inputs; this is a modeled calculation, not a new measurement.

>>> from mlsysim import Scenarios
>>> scenario = Scenarios.BlindRetryTwoPercentLoss
>>> scenario.calls
200000

Attributes

Name Description
calls Total mutating call count over the scenario’s accounting period: workers times calls per worker.
calls_per_worker
duplicate_cost
duplicate_cost_per_day Expected duplicate-side-effect cost in USD for the declared daily workload; uses result.duplicates and supplied cost per duplicate.
lookup_cost_per_day Status-lookup cost in USD when every modeled timeout triggers one lookup.
lost_request_share Fraction of timeouts attributable to request loss under the solver’s independent request/reply-loss model; undefined when no timeout is possible.
reply_loss
request_loss
result Return mlsysim.solvers.BlindRetryModel.solve for this scenario; output fields retain the units and feasibility semantics specified by that solver.
status_lookup_cost
unapplied_closures Expected calls whose first request never arrived: call count times request-loss probability.
workers

request_loss

Type: float.

Declared default: required.

reply_loss

Type: float.

Declared default: required.

workers

Type: int.

Declared default: required.

calls_per_worker

Type: int.

Declared default: required.

duplicate_cost

Type: Optional[Quantity].

Declared default: None.

status_lookup_cost

Type: Optional[Quantity].

Declared default: None.

calls

engine.scenario_types.BlindRetryScenario.calls

Total mutating call count over the scenario’s accounting period: workers times calls per worker.

Equation: self.workers * self.calls_per_worker

result

engine.scenario_types.BlindRetryScenario.result

Return mlsysim.solvers.BlindRetryModel.solve for this scenario; output fields retain the units and feasibility semantics specified by that solver.

Equation: mlsysim.solvers.BlindRetryModel.solve (scenario fields).

lost_request_share

engine.scenario_types.BlindRetryScenario.lost_request_share

Fraction of timeouts attributable to request loss under the solver’s independent request/reply-loss model; undefined when no timeout is possible.

Equation: self.request_loss / self.result.timeout_probability

unapplied_closures

engine.scenario_types.BlindRetryScenario.unapplied_closures

Expected calls whose first request never arrived: call count times request-loss probability.

Equation: self.calls * self.request_loss

duplicate_cost_per_day

engine.scenario_types.BlindRetryScenario.duplicate_cost_per_day

Expected duplicate-side-effect cost in USD for the declared daily workload; uses result.duplicates and supplied cost per duplicate.

Equation: (self.result.duplicates * self.duplicate_cost).to(‘USD’)

lookup_cost_per_day

engine.scenario_types.BlindRetryScenario.lookup_cost_per_day

Status-lookup cost in USD when every modeled timeout triggers one lookup.

Equation: (self.result.timeouts * self.status_lookup_cost).to(‘USD’)

Back to top