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

Remove PlanStage::invalidate()

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 4.1.3
    • Affects Version/s: None
    • Component/s: Querying
    • None
    • Fully Compatible
    • Query 2018-08-27, Query 2018-09-10

      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.

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

              Created:
              Updated:
              Resolved: