[SERVER-82596] Improve StorageInterfaceImpl::findOplogEntryLessThanOrEqualToTimestamp performance Created: 30/Oct/23 Updated: 05/Feb/24 |
|
| Status: | Blocked |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Mark Benvenuto | Assignee: | Pavithra Vetriselvan |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | perf-8.0, perf-tiger, perf-tiger-handoff, perf-tiger-poc, perf-tiger-q4, repl-shortlist | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Assigned Teams: |
Replication
|
||||||||||||||||
| Sprint: | Repl 2023-11-27, Repl 2023-12-11, Repl 2023-12-25, Repl 2024-01-08, Repl 2024-01-22, Repl 2024-02-05, Repl 2024-02-19 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
Going directly to the storage engine is cheaper then going through the query engine. It avoids the overhead of allocating/deallocating the QE stages and walking the associated extra code. StorageInterfaceImpl::findOplogEntryLessThanOrEqualToTimestamp is called as part of writing replication changes. Changing it to use the storage engine api will reduce the instruction count Note: I have not measured the perf of this change alone POC: https://github.com/10gen/mongo/commit/479f20a028b9986700f317887ee22e6fe4451745 |
| Comments |
| Comment by Matthew Russotto [ 06/Nov/23 ] |
|
Note that seekNear on the oplog when the RU has a read timestamp is affected by |