You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cluster-controller: swap the replica set at a forced cut-over
A graceful reconfiguration overlaps the realized and target replica sets so the
old one keeps serving while the new one hydrates. A forced cut-over has given up
on hydration, so that overlap buys nothing and only doubles what the reshape has
to fit. The baseline now yields its replicas once the record is past its deadline
under ON TIMEOUT COMMIT, which turns the reshape into a single transaction that
retires the realized replicas and creates the target's. Only the net has to fit
the budget, so a resize lands on a budget with no room for both sets at once, and
shrinking a cluster that already sits near its limit works at all. If the swap
still does not fit it is rejected whole, leaving the record in progress for the
controller to shed.
Stop shedding a hydration burst on resource exhaustion. Nothing durable records
that a burst was unaffordable, so clearing the record let the unchanged policy
arm the same burst on the next tick: every cycle wrote a start and a finish,
allocated a replica id, and woke the next reconciliation immediately. An
unaffordable burst now keeps retrying its create, bounded by the tick interval,
and settles once the steady set hydrates. That drops the durable
BurstFinishCause::ResourceExhausted variant, so the stack no longer changes the
catalog protos at all.
Bound the sleeping dataflow in the cc_nonshape testdrive section. mz_sleep blocks
the worker thread and dropping the view does not interrupt a sleep already in
flight, so an hour-long sleep wedged the target replica and the section's
convergence assertions could never pass.
0 commit comments