[SERVER-44276] Have the storage engine catalog cache collection information by record ids Created: 28/Oct/19  Updated: 29/Oct/23  Resolved: 06/Nov/19

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

Type: New Feature Priority: Major - P3
Reporter: Daniel Gottlieb (Inactive) Assignee: Daniel Gottlieb (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-43859 Use only MODE_IX locks for creating a... Closed
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2019-11-04, Execution Team 2019-11-18
Participants:

 Description   

Currently, the DurableCatalogImpl::_idents map is keyed by namespace. When creating a duplicate collection with the same namespace, the catalog will return a namespace already exists error.

That error acts as an "early write conflict"; if everything else in the system allowed concurrent collection creation on the same namespace (where of course only one transaction can win committing), that collection management would be a serialization point.

The consensus change is to instead keep the map, but index that data by the RecordId in the durable _mdb_catalog table. Collections and/or RecordStores will hold onto their RecordIds.



 Comments   
Comment by Githook User [ 06/Nov/19 ]

Author:

{'username': 'dgottlieb', 'email': 'daniel.gottlieb@mongodb.com', 'name': 'Daniel Gottlieb'}

Message: SERVER-44276: Change storage engine catalog map to be keyed by RecordId instead of Namespace.
Branch: master
https://github.com/mongodb/mongo/commit/39c08aceaf7fa15a8e65cf80b09863b452425426

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