Replication Chapter 3 says the below.
“When the old primary comes back online, that data is going to be rolled back as part of the synchronization process.”
Can someone Please explain in detailed for the below question.
Question 1: I assume mongodb Performs Internal commits once DML Activity performed after sending acknowledge to Client. Even Though it is not yet written into Disk, It should be in-Memory with Commited details ( Dirty records ). In this Case, If Primary becomes corrupted / Not Reachable and comes back online, Why It role back which is already committed or acknowledged Records as part of Sync Process.
Does this Chapter assumes, Primary fails after confirmation sent to client , But before commiting internally ?. I am sure that, In oracle, Once records are committed even not written into disk, It will not be roll backed.
Also there is another one line “While you can access the rolled back data manually, the application effectively has a piece of data that no longer exists in the cluster.”
Question 2 : If roll back is done part of sync process then, How can user get the data manually. Does this means, User re-insert the data manually ?