sql: maintain a singleton zcfg reconciliation task for sql tenants using the jobs framework #66680
Labels
A-multitenancy
Related to multi-tenancy
A-zone-configs
C-investigation
Further steps needed to qualify. C-label will change.
Part of #66348. We want to ensure only a single reconciliation loop (promoting zcfgs to scfgs) is running for a given tenant across all its pods. We could use the jobs infrastructure for this; it would also provide a convenient way to checkpoint the reconciliation progress. This would be similar to how automatic stats collection works today.
Sketch
On startup, every sql pod will check to see if a reconciliation job exists (is running, pending, or paused), and if it doesn't, it will queue one up. The reconciliation process differs from the usual jobs mold in a few small ways. For one, it's a system initiated process, and as such should be non-cancellable. Additionally, it should never never enter the "terminal states" (succeeded/failed) that jobs do. It should perpetually stay in the "running" state, reacting to rangefeed events and reconciling as required.
The text was updated successfully, but these errors were encountered: