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

Reduce unnecessary "properties" computation in QuerySolutionNode

    XMLWordPrintableJSON

Details

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

    Description

      In simple read path benchmarks with perf of an indexed query of shape {key: value}, I observed that ~10% of query planning CPU time was spent in IndexScanNode::computeProperties(). This method computes the sort orders offered by the index associated with the given query solution node (and is run even when the given user query has no requested sort), and is expensive as currently implemented.

      The method QuerySolutionNode::computeProperties() should be removed, and all public members in derived classes should be made private. It should then be left up to implementations whether or not to lazily generate computed properties from their accessors.

      Before work is started on this ticket, the above measurement should be verified (re-run the above benchmark, compare against a fork where the body of computeProperties() is deleted).

      Attachments

        Activity

          People

            backlog-query-optimization Backlog - Query Optimization
            rassi J Rassi
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: