-
Type: Task
-
Resolution: Done
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
135
With the "new yielding" behavior, the query system will not reset its storage cursors across getMores or yields, forcing the storage engine to "pin" the data these cursors are positioned at. This resulted in some performance regressions, explained in BF-24012.
Here is a POC of the idea to have the query system preemptively copy data when it is known that either yield or a command will call saveState() momentarily.