rabbitmq-server icon indicating copy to clipboard operation
rabbitmq-server copied to clipboard

4.0: use Ra checkpoints in rabbit_fifo for sub-linear time recovery of QQs on boot

Open the-mikedavis opened this issue 1 year ago • 0 comments

This is the companion PR for https://github.com/rabbitmq/ra/pull/415

rabbit_fifo currently has an ad-hoc checkpointing system where it saves {release_cursor, RaftIdx, State} effects in-memory periodically and emits them as the release cursor moves up. By building checkpointing into ra we can save the checkpoints on disk instead, reducing QQ memory footprint and enabling us to recover even very long queues in logarithmic time (w.r.t. the length of the queue). See https://github.com/rabbitmq/ra/pull/415 for in-depth details about checkpoints.

Connects #8261

the-mikedavis avatar Feb 05 '24 16:02 the-mikedavis