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

Make CanonicalQuery immutable in order to avoid re-parsing for WriteConflictExceptions

    XMLWordPrintableJSON

Details

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • Performance, Querying
    • None
    • Query Optimization

    Description

      Currently, the ParsedUpdate and ParsedDelete classes hand ownership of their canonical query to the PlanExecutor. The PlanExecutor then is allowed to mutate the CanonicalQuery during the course of planning and query execution.

      Making the CanonicalQuery immutable would allow the same CQ to be used by multiple PlanExecutors. This means that we would not need do the work of parsing again when we retry due to a write conflict.

      Attachments

        Activity

          People

            backlog-query-optimization Backlog - Query Optimization
            david.storch@mongodb.com David Storch
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated: