Versions Compared

Key

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

...

  1. On TX coordinator failure the oldest node from tx participants is elected as TX coordinator and checks other tx participants local states.
  2. If there is at least one participant having tx in ACTIVE or ABORTED state, whole transaction is marked as ABORTED and tx rolled back message is sent to MVCC coordinator.
  3. If all participants have tx in LOCALLY_COMMITTED state, whole transaction is marked as COMMITTED and tx committed message is sent to MVCC coordinator.If there is at least one lost partition from cacheId to partitions mapping, whole transaction is marked as ABORTED and tx rolled back message is sent to MVCC coordinator.
  4. If all participants have tx in LOCALLY_COMMITTED state and there is no lost partitions, whole transaction is marked as COMMITTED and tx committed message is sent to MVCC coordinator.
  5. A record with lost partitions from cacheId to partitions mapping cannot be deleted from TxLog.
  6. Rejoining node checks compares theyr local TxLog . If it has a tx in ACTIVE or LOCALLY_COMMITTED state it compares this transactions with MVCC coordinator. If there is no matched records it forcibly rebalances involved partitions to prevent inconsistenceand MVCC coordinator's one. 
  7. All partitions from ACTIVE txs have to be forcibly rebalanced. 
  8. All LOCALLY_COMMITTED txs have to be compared to appropriate record from MVCC coordinator's TxLog. 
  9. If there is no matching record, partitions from such txs have to be forcibly rebalanced.
  10. If there is a matching record, tx gets new state from the record.

Read (getAll and SQL changes)