[SERVER-43685] Biggie storage engine should support snapshot ids Created: 27/Sep/19  Updated: 29/Oct/23  Resolved: 24/Oct/19

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: 4.3.1

Type: Bug Priority: Major - P3
Reporter: David Storch Assignee: David Storch
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Duplicate
is duplicated by SERVER-43686 Biggie storage engine should support ... Closed
Related
is related to SERVER-42979 Implement WorkingSet::extract() and W... Closed
is related to SERVER-44590 Logged snapshot IDs should match when... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:
Linked BF Score: 35

 Description   

There are a few places in the query engine which assume that all storage engines which return true for supportsDocLocking() also support RecoveryUnit::getSnapshotId():

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.



 Comments   
Comment by David Storch [ 24/Oct/19 ]

The chosen fix was to move assignment of snapshot ids above the storage engine API, by handling it in the RecoveryUnit base class. This means that all storage engines, including biggie, now support snapshot ids. The query engine can rely on snapshot ids being meaningful, regardless of whether the configured storage engine supports document-level concurrency.

Comment by Githook User [ 24/Oct/19 ]

Author:

{'username': 'dstorch', 'email': 'david.storch@mongodb.com', 'name': 'David Storch'}

Message: SERVER-43685 Move snapshot id handling above storage API.

This ensures that all storage engines support tracking of
snapshot ids, and by extenion, allows the query system to
rely on the validity of these ids for all engines.
Branch: master
https://github.com/mongodb/mongo/commit/f22a062b373ccdb5aa9232a2da435918b54c358e

Generated at Thu Feb 08 05:03:50 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.