04e797c706
First of all using a partition checkpoint as some kind of intermediate representation was kinda a hack because partition checkpoints should only created for to-be-persisted partitions, not for the others. API-wise it should only be possible to construct a partition checkpoint from a flush handle. Also we were only able to construct partition checkpoints for partitions that had unpersisted data, otherwise there was no sane way to fill the `min_unpersisted_timestamp`. We must however scan all partitions no matter if there is unpersisted data so that we can determine the maximum seen sequence numbers. This was caught by a replay test resulting in a catalog state where the last database checkpoint had lower maximum seen sequence numbers than some partition checkpoint, bailing out with an error. So overall it turns out that passing the sequencer numbers directly instead of wrapping them into a partition checkpoint is the better implementation. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |