Details
-
Improvement
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
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).