Details
-
Improvement
-
Resolution: Done
-
Major - P3
-
None
-
None
Description
This is claimed in docs at http://docs.mongodb.org/manual/core/replica-set-rollbacks/ and in the quiz for the Recovery section of M102. It isn't true.
From the docs: "To prevent rollbacks, use replica acknowledged write concern to guarantee that the write operations propagate to the members of a replica set."
From M102: "MongoDB has a method to ensure a write was replicated and will never need to be rolled back:"
Failure scenario in which commit was visible to another client on the master and then is removed during rollback.
1) Client 1 commits to journal on master and waits.
2) Client 2 views commit from client 1 by doing read on master.
3) Master reboots.
4) Replica 2 elected new master, it didn't get oplog entry from step 1
5) Old master comes back, does rollback to remove change from step 1