[SERVER-65089] Avoid unnecessary KeyString copies in index interface Created: 30/Mar/22  Updated: 31/Jan/24

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

Type: Task Priority: Major - P3
Reporter: Dan Larkin-York Assignee: Backlog - Storage Execution Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-81012 KeyString Version of Index Scan Optim... Open
Assigned Teams:
Storage Execution
Sprint: Execution Team 2024-01-22
Participants:

 Description   

Currently when we perform an index seek, we end up doing multiple unnecessary copies of the index key. Most likely we could construct the input KeyString (the seek point) in place if we refactor to pass a buffer as an input parameter (e.g. to IndexEntryComparison::makeKeyStringFromSeekPointForSeek). Similarly, the key returned by the index seems to be copied more than necessary, and we may be able to do some refactoring here to improve things as well. There may be other places (besides the seek interface) where we are doing unnecessary copies as well.

These copies are likely trivial for workloads where the index entries are being read from disk, but in the case where all data is in cache, the copies can have a non-trivial effect on overall performance.


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