Skip to main content

TIERED_POLICY

Static TIERED_POLICY 

Source
static TIERED_POLICY: LazyLock<Arc<TieredPolicy>>
Expand description

Process-wide policy::TieredPolicy singleton.

Why a singleton: every ResidentTicket keeps an Arc<dyn PagingPolicy> pointing at the policy that decided to keep the column resident. Replacing the global TieredPolicy would orphan in-flight tickets onto the previous instance — they would credit a budget atomic that the new policy can no longer see, draining the new pool monotonically until it locks up on Page decisions. A persistent singleton with in-place policy::TieredPolicy::reconfigure sidesteps the issue: all tickets, past and present, share the same atomic.

Initialized eagerly with zero budget so metrics::register can read it during compute startup, before any apply_tiered_config call. The first config apply resizes the pool via reconfigure, which is the same path operator-driven tunes take.