-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Query Execution
-
Fully Compatible
-
v5.0
-
Query Execution 2021-05-03, Query Execution 2021-05-17, Query Execution 2021-05-31
There are a few things we can do to improve the performance of this workload:
1) Eliminate the repeated allocations done in the CheckBoundsStage::getNext() here. We can instead hold a buffer in the stage and re-use that each call to toBson().
2) Skip the allocation done in IndexBoundsBuilder::checkKey() (there's already a TODO about this)
3) WTIndexCursorBase::nextKeyString() makes a copy of the key string which requires allocating. We could instead keep a buffer up front in the IXscan stage and then pass a pointer to it. This would be a bit invasive, but it's worth trying to see how much benefit there is.
- related to
-
SERVER-48634 [SBE] Add a version of IndexBoundsChecker::checkKey which works against a KeyString
- Backlog
-
SERVER-48485 [SBE] Use KeyString directly when statically generating index scan intervals
- Backlog