-
Type: Improvement
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Sharding EMEA
The shard filtering/routing information should be moved from the query layer to the AutoGetCollection*/CollectionPtr interfaces
- With this change, we should reconsider whether the AutoGetCollection* classes still need to explicitly check the shardVersion, as fetching the filtering metadata does the check implicitly.
- ScopedCollectionDescription, or whatever class is the filtering metadata, must not have any other sharding linking dependencies, and should be documented strongly to keep it that way. We do NOT want to link sharding into the execution catalog / code layer.
----------------------------------------------------------------------------------------------------
The new CollectionPtr accessible via the AutoGetCollection* collection helpers are passed throughout the code (replacing how we used to pass raw Collection pointers). The query code has access to the CollectionPtr, so placing the shard filtering metadata on the CollectionPtr during AutoGetCollection* setup would provide query code access.
- is caused by
-
SERVER-53257 Determine whether we need const CollectionShardingState/DatabaseShardingState instances for Lock-Free Reads
- Closed