Details
-
Task
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
Catalog and Routing
-
CAR Team 2024-01-08, CAR Team 2024-01-22, CAR Team 2024-02-05, CAR Team 2024-02-19
Description
Today, mongod uses a single CatalogCache and CatalogCacheLoader for both it's shard-role responsibilities (i.e. updating the filtering metadata), and it's bespoke router-role support (i.e. routing cross-shard $lookup queries).
As we give mongod 'proper' routing support equivalent to the routing facilities mongos provides, we want to allow the routing layer to use a separate CatalogCache that is backed by a ConfigServerCatalogCacheLoader, so that routing operations do not need to stall waiting for replication. However, the shard-role use of the CatalogCache needs to continue to use CatalogCache backed by ShardServerCatalogCacheLoader, to ensure that the routing table view is consistent between primaries and secondaries on refresh.
To achieve this goal, we'll support two CatalogCache and CatalogCacheLoader instances in each mongod: one used for routing, and the other for shard-role activities. The use of the shard-role implementation should be very limited; essentially, only to filtering metadata updating. To implement this, we'll introduce a new CatalogCacheAndLoaderBackingShardRole object that encapsulates the shard-role state, and clarify that the CatalogCache available on the grid should be used exclusively for routing.
Attachments
Issue Links
- depends on
-
SERVER-85370 Move rename precondition checks away from generic utility API
-
- Closed
-
-
SERVER-85525 `collMod` coordinator can get the current shard ID without accessing the catalog cache
-
- Closed
-
- has to be finished together with
-
SERVER-84247 Complete TODO listed in SERVER-82588
-
- Closed
-
- is depended on by
-
SERVER-83433 Add back the test coverage for running db hash check on replica set that is fsync locked and has replica set endpoint enabled
-
- Backlog
-
- is related to
-
SERVER-82588 Move CatalogCacheLoader to be a decoration on Service
-
- Closed
-
-
SERVER-82589 Move CatalogCache off of the Grid object and onto Service
-
- Closed
-
- related to
-
SERVER-84548 Using ShardServerCatalogCacheLoader on configsvr causes excessive WT data handles / memory usage
-
- In Code Review
-