-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Sharding
-
Catalog and Routing
-
CAR Team 2023-12-11, CAR Team 2023-12-25, CAR Team 2024-01-08, CAR Team 2024-01-22, CAR Team 2024-02-05, CAR Team 2024-02-19
Explicit collection creation:
-
- The router receives an explicit create request and contacts the primary shard
- The shard creates the collection locally and returns the UUID of the created collection
- The router adds the CSRS as a participant and creates the collection on the cluster catalog
Implicit creation case:
-
- The shard throws a new "collection needs to be created" error to the router when detecting that a write is targeting a non-existing collection (flow detailed in
SERVER-80372) - The router catches such error and reacts by issuing an explicit collection creation request (following the path outlined just above for the explicit creation path)
- The shard throws SSV
- The router re-issues the write
- The shard throws a new "collection needs to be created" error to the router when detecting that a write is targeting a non-existing collection (flow detailed in
- depends on
-
SERVER-86254 Implicit creation due to retryable write or txn statement must follow new path
- Open
-
SERVER-78799 POC distributed transactions involving local and sharding catalogs
- Closed
-
SERVER-80372 Make implicit collection creation call into `createCollection`
- Closed
-
SERVER-81498 Internally allow creation of new collections inside prepared transactions
- Closed
-
SERVER-83776 Pull out from create coordinator the code to commit new collections on the sharding catalog
- Closed
-
SERVER-85913 Adapt DDL locks to support transactions
- Closed
- is depended on by
-
SERVER-83328 Increase thread count in sharded_transactional_collection_creation.js
- Blocked
- is related to
-
SERVER-83875 Simplify flow for creating collection in a transaction on sharded clusters
- Blocked