[SERVER-68092] [CQF] Allow estimates for individual multikey entries in PartialSchemaRequirements map Created: 15/Jul/22  Updated: 05/Dec/22  Resolved: 04/Sep/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Svilen Mihaylov (Inactive) Assignee: Backlog - Query Optimization
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-68965 [CQF] Improvements to indexing in the... Closed
Assigned Teams:
Query Optimization
Participants:

 Description   

Currently the estimates are held in PartialSchemaKeyCE which is a regular map.

For examples if we have 3 entries with the following paths: Get "a" Traverse Id, Get "a" Traverse Id, Get "b" Traverse Id, we will create only two entries in the PartialSchemaKeyCE structure: Get "a" Traverse Id and Get "b" Traverse Id.

As such during estimation we average the individual estimates on the same path and encode them as a single entry. While in practice there is currently no reason to expect a significant plan difference as a result, in principle we would like to encode, the separate estimates (in the example for Get "a" Traverse Id). To achieve this we would need to change the representation of the interval structures.

 

One possible way is to transition PartialSchemaKeyCE to map<size_t, CEType> the key being the "index" of the key in the multimap.


Generated at Thu Feb 08 06:09:51 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.