Description
Currently MVCC doesn't support historical (delta) rebalance.
The main difficulty is that MVCC writes changes on tx active phase while partition update version, aka update counter, is being applied on tx finish. This means we cannot start iteration over WAL right from the pointer where the update counter updated, but should include updates, which the transaction that updated the counter did.
Currently proposed approach:
- Maintain a list of active TXs with update counter (UC) which was actual at the time before TX did its first update (on per partition basis)
- on each checkpoint save two counters - update counter (UC) and back counter (BC) which is earliest UC mapped to a tx from active list at checkpoint time.
- during local restore move UC and BC forward as far as possible.
- send BC instead of update counter in demand message.
- start iteration from a first checkpoint having UC less or equal received BC
See linked dev list thread for details
Attachments
Issue Links
- is duplicated by
-
IGNITE-7991 MVCC TX Crash recovery
- Closed
- links to