| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Ecluse.Core.Registry.Sweep
Description
The Dredger's cycle over every mount's mirror store and the private cache it is paired with. The two inventories are joined bucket by bucket through Ecluse.Core.Registry.Sweep.Walk, and a full walk resumes from the stored bucket cursor.
Synopsis
- sweepCycle :: SweepPacing -> SweepPorts -> [SweepMount] -> IO CycleOutcome
- paceAtCeiling :: SweepPacing -> SweepPorts -> [SweepMount] -> IO ()
- storeBudgets :: [SweepMount] -> [StoreBudget]
- withStoreRetry :: SweepPacing -> SweepPorts -> SweepMount -> IO (Either StoreFault a) -> IO (Either CycleHalt a)
Documentation
sweepCycle :: SweepPacing -> SweepPorts -> [SweepMount] -> IO CycleOutcome Source #
Run one cycle: every mount's store in turn. A halt ends the whole cycle, because every reason for one is a fact about the deployment rather than about one package.
paceAtCeiling :: SweepPacing -> SweepPorts -> [SweepMount] -> IO () Source #
Hold every scope to its ceiling before any cycle has measured one. A Dredger whose every cycle halts never reaches the measured decision, so this is where its rate comes from.
storeBudgets :: [SweepMount] -> [StoreBudget] Source #
Each distinct capacity pool the cycle's stores share. Two stores that landed in one pool are paced by the narrower of what each claims, never by whichever the fold read last.
withStoreRetry :: SweepPacing -> SweepPorts -> SweepMount -> IO (Either StoreFault a) -> IO (Either CycleHalt a) Source #
One store call, retried once after the wait its own fault advises. A fault that survives that wait halts the cycle, which the next cycle re-attempts after the cycle pause.