DatabaseShardingState::checkDbVersion is normally called in DBLock, which AutoGetCollectionLFR will not use. I think we'll want to perform the check after setting up consistent catalog state (opening a storage snapshot), but need to prove it first in SERVER-51274
Also remove the dassert lock checks in DatabaseShardingState::get() and CollectionShardingState::get() in this task.
- causes
-
SERVER-62457 Lock-free reads causes query subsystem to treat unsharded collection as sharded when collection is dropped and re-created (ABA problem)
- Closed
-
SERVER-52626 Remove incompatible_with_lockfreereads JS tag
- Closed
- depends on
-
SERVER-50678 Implement lock-free version of AutoGetCollectionForRead
- Closed
-
SERVER-51274 Write up and prove design solution rationale for why sharding filtering metadata is safe to acquire later than catalog state
- Closed
- is related to
-
SERVER-53257 Determine whether we need const CollectionShardingState/DatabaseShardingState instances for Lock-Free Reads
- Closed
-
SERVER-53392 Determine what longer term sharding changes are needed after SERVER-51319
- Closed
-
SERVER-54402 CollectionShardingState and DatabaseShardingState should return immutable const references for lock-free read operations
- Closed