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.
- is depended on by
-
SERVER-43859 Use only MODE_IX locks for creating a new collection, and new db if needed
- Closed