Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-44276

Have the storage engine catalog cache collection information by record ids

    • Type: Icon: New Feature New Feature
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.1
    • Affects Version/s: None
    • Component/s: Storage
    • None
    • Fully Compatible
    • Execution Team 2019-11-04, Execution Team 2019-11-18

      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.

            Assignee:
            daniel.gottlieb@mongodb.com Daniel Gottlieb (Inactive)
            Reporter:
            daniel.gottlieb@mongodb.com Daniel Gottlieb (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: