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

KV Storage Engine should defer removing idents by registering the ident with the KVDropPendingIdentReaper

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.1.7
    • Affects Version/s: None
    • Component/s: Storage
    • Labels:
      None
    • Fully Compatible
    • Storage NYC 2018-12-31

      In DatabaseImpl::dropCollectionEvenIfSystem(), we currently rename the collection to a <db>.system.drop.* namespace. With drop-pending ident support, we will instead invoke _finishDropCollection() to remove the collection from the catalog.

      Subsequently, the KV storage engine will remove the collection from the KVCatalog. Rather than dropping the ident, the KVDatabaseCatalogEntryBase::RemoveCollectionChange will register the ident with the KVDropPendingIdentReaper using the commit timestamp from the RecoveryUnit.

      With the new Timestamp notifier introduced in SERVER-38128, it is now possible for the KVStorageEngine to set up a listener for changes to either the oldest or checkpoint timestamps together with a KVDropPendingIdentReaper so that drop-pending idents with commit timestamps that precede the oldest timestamp can be safely removed.

            Assignee:
            benety.goh@mongodb.com Benety Goh
            Reporter:
            benety.goh@mongodb.com Benety Goh
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: