-
Type: Task
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
SeekableRecordCursor::saveUnpositioned() saves us an extra seek upon restoring from a yield. In classic engine, this was done for fetches as well as in index scans, but in SBE we never take advantage of this. This causes a loss in performance.
For fetches, we never care about restoring the cursor location because we only return one result, so successive seeks never happen.
For index scans, we can use saveUnpositioned when the scan is in the NeedSeek state.
Porting these speed-ups to SBE will win back quite a bit of performance for snapshot_reads as well as mixed_workloads benchmarks.