Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

1) at the finish stage each tx node adds a local TxLog record with XID and LOCALLY_COMMITTED flag
2) TX coordinator sends to MVCC oordinator node a tx finish message.
3) MVCC coordinator adds TxLog record with XID and COMMITTED flag, all the changes become visible.
4) TX coordinator (near tx node) sends to participants a commit acknowledged message, nodes asyncronously mark tx as COMMITTED.

In case MVCC coordinator fails, newly assighned coordinator gets all TxLog subsets and checks that all LOCALLY_COMMITTED tx participants (at least one node from each primary to backup partition mapping) are alive and mark TX as COMMITTED (and sends to participants a commit acknowledged message, nodes asyncronously mark tx as COMMITTED) or LOCALLY_COMMITTED otherwise.

In case there is at least one node with tx in COMMITTED state the transaction marks as COMMITTED on MVCC coordinator without tx node map check.

At an disconnected node rejoin time the LOCALLY_COMMITTED txs (at mvcc coordinator or rejoining node) are rechecked.

LOCALLY_COMMITTED txs are in active state for all other participants, they retain all aquired locks and in case there are no quorum (one of the members failed permanently) has to be resolved manually.

Recovery Protocol Changes

...