Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Invalid
-
0.10.0
-
None
-
None
Description
The way we handle rollback blocks in AbstractLogRecordReader is below:
Once we encounter the rollback block, we walk back to previous log blocks to get hold of the blocks that needs to be rolledback. Whenever the instant time of a block differs from what the rollback block refers to, we wrap up the rollback block handling. This may not hold good with multi-writer scenario.
DC1: logBlock1
DC2: logBlock2 // failed mid way.
DC3: logBlock3
Rollback command block: rollback of DC2.
When handling the rollback command block, with DC3 we bail since the instant time (DC3) does not match DC2 i.e. the commit being rolledback by DC4.