-
Enhancement
-
Resolution: Duplicate
-
Major
-
None
-
None
This should be implemented in order to bring failure-recovery capabilities to cache. Failure example:
Let's say that we have 3 nodes, A B and C. A starts tx, does a put ("k","v") then commits tx. During commit following happen:
1) prepare is broadcasted
B prepares and holds locks
C prepares and holds locks
2) A sees B and C voted okay,so triggers a commit:
- B receives the commit msg and applies changes (for good!)
- A does not manage to send the message to C in the given timeout. At this point, the RPC call returns and A rollbacks, also C will rollback after a while (tx timeout). But B will have the changes applied, and this will result in an atomicity being violated.