-
Type: Improvement
-
Resolution: Works as Designed
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Replication, Storage
-
None
-
v4.0
-
Repl 2018-12-03, Repl 2018-12-17
Right now there is a subtle difference between readConcern: "majority" and readConcern : "snapshot" when using transactions. A transaction done at readConcern : "majority" may provide a snapshot that reflects oplog holes – that is, we may see writes that are ordered after writes we do not see. This seems like less than useful behavior and it complicates the code, so we should remove it.
This would involve removing the SpeculativeTransactionOpTime enum in transaction_participant.cpp, and all behavior associated with it (we should always use AllCommitted behavior). We can also remove RecoveryUnit::ReadSource::kLastAppliedSnapshot from the recovery_unit, and all associated behavior.