Reduce unnecessary "properties" computation in QuerySolutionNode

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Querying
    • None
    • Query Optimization
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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).

            Assignee:
            [DO NOT USE] Backlog - Query Optimization
            Reporter:
            J Rassi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: