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

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.1.7
    • None
    • Storage
    • None
    • Fully Compatible
    • Storage NYC 2018-12-31

    Description

      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.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: