There are a few places in the query engine which assume that all storage engines which return true for supportsDocLocking() also support RecoveryUnit::getSnapshotId():
- Determining whether a document needs to be re-fetched from storage before attempting to update or delete it.
- Determining whether or not to check whether buffered index keys are still consistent with a fetched document in WorkingSetCommon::fetch().
This assumption does not hold for the biggie storage engine. This is currently causing query correctness issues leading to the failure of tests getmore_invalidated_documents.js and ensure_sorted.js. These failures were introduced by the code added in SERVER-42979 which assumed that doc-locking engines also support snapshot ids. There could be additional latent problems of a similar nature that have not yet been discovered.
- is duplicated by
-
SERVER-43686 Biggie storage engine should support snapshot ids
- Closed
- is related to
-
SERVER-42979 Implement WorkingSet::extract() and WorkingSet::emplace()
- Closed
-
SERVER-44590 Logged snapshot IDs should match when opening and closing transactions.
- Closed