[SERVER-16533] Make CanonicalQuery immutable in order to avoid re-parsing for WriteConflictExceptions Created: 12/Dec/14  Updated: 06/Dec/22

Status: Backlog
Project: Core Server
Component/s: Performance, Querying
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: David Storch Assignee: Backlog - Query Optimization
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Tested
Assigned Teams:
Query Optimization
Participants:

 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.


Generated at Thu Feb 08 03:41:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.