perago.PublishBudget#
- class perago.PublishBudget(*, observed_merge_p99_seconds, safety_margin_seconds, lakefs_merge_timeout_seconds, conductor_completion_timeout_seconds, worker_shutdown_grace_seconds, heartbeat_interval_seconds)[源代码]#
Operational time budget for workspace publication.
PublishBudgetderives the ConductorresponseTimeoutSecondsused by generated TaskDefs for workspace tasks and provides runtime timeouts for the LakeFS merge and Conductor completion calls. It is an operational time budget, not an exactly-once publication proof.- Parameters:
- observed_merge_p99_secondsint
Observed high-percentile LakeFS merge latency under expected workload.
- safety_margin_secondsint
Additional safety margin added to the observed merge latency.
- lakefs_merge_timeout_secondsint
Request timeout for the LakeFS merge operation. Must cover
observed_merge_p99_seconds + safety_margin_seconds.- conductor_completion_timeout_secondsint
Request timeout for reporting the final task result to Conductor.
- worker_shutdown_grace_secondsint
Grace period reserved for worker shutdown after publication.
- heartbeat_interval_secondsint
Heartbeat interval included in the derived response timeout.
- Attributes:
response_timeout_secondsintDerived Conductor response timeout for workspace publication.
- Raises:
- TaskDefinitionError
If the LakeFS merge timeout is smaller than the observed latency plus safety margin.
- 参数:
Notes
Publish budgets are only valid for workspace tasks. Workspace-free tasks reject
TaskControls(publish_budget=...)during task definition validation.Examples
>>> budget = PublishBudget( ... observed_merge_p99_seconds=20, ... safety_margin_seconds=10, ... lakefs_merge_timeout_seconds=45, ... conductor_completion_timeout_seconds=15, ... worker_shutdown_grace_seconds=30, ... heartbeat_interval_seconds=10, ... ) >>> budget.response_timeout_seconds 100
Methods
validate_merge_timeout_budget()Validate that the LakeFS merge timeout covers the observed budget.
Attributes
response_timeout_secondsDerived Conductor response timeout for workspace publication.
observed_merge_p99_secondssafety_margin_secondslakefs_merge_timeout_secondsconductor_completion_timeout_secondsworker_shutdown_grace_secondsheartbeat_interval_seconds