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

Remove PlanStage::invalidate()

    XMLWordPrintableJSON

Details

    • Icon: Improvement Improvement
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • 4.1.3
    • None
    • Querying
    • None
    • Fully Compatible
    • Query 2018-08-27, Query 2018-09-10

    Description

      Due to the introduction of storage engines that can perform writes without holding an exclusive collection lock comes, the query invalidation mechanism is now deprecated. In its replacement, the query engine now tags certain working set members during a yield as possibly having out-of-date object contents. This tagging is currently not performed for the MMAPv1 storage engine, but it should be.

      Once that is done, we can remove the PlanStage::invalidate() method and the KeepMutations query stage.

      On MMAPv1, we would still need to preserve some mechanism for document deletion to advance all RecordIterators pointing to that document (since it is not currently possible for a RecordIterator to figure out where to advance to if it is pointing to a deleted document). CursorManager::invalidateDocument() would need to be changed to use this new mechanism.

      Attachments

        Activity

          People

            david.storch@mongodb.com David Storch
            rassi J Rassi
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: