[SERVER-85812] Consider making bounds direction checking code debug only Created: 26/Jan/24 Updated: 27/Jan/24 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Ben Shteinfeld | Assignee: | Backlog - Query Optimization |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Query Optimization
|
| Participants: |
| Description |
|
In the LargeIndexedIn workload, 15% of total CPU time is spent in isValidFor(), which validates that the index bounds are in the correct order relative to the scan and index direction (for example, the bounds [1,3] is valid for ascending index + forward traversal and descending index + backwards traversal). isValidFor() is invoked immediately after aligning the bounds to satisfy the proper direction, and only used to log and tassert if it fails. Given the cost in a high-value workload, we should consider disabling this check in release builds. |