Have a debug config option to enable/disable cursor reposition logic which was disabled in code with
WT-8707 introduced cursor repositioning, which encourages eviction of pages that would otherwise grow large because of staying pined. The logic makes a decision on when to give the release a page and reacquire by searching the key again. There were unexpected performance issues with the change. WT-9353 has fixed a bug in the repositioning logic and another in the forced eviction of large pages that split in memory. To get a clean performance evaluation, we also disabled cursor repositioning with WT-9353.
We will like to independently evaluate the bug fixes, and the performance impacts of cursor repositioning before and after the server starts to yield the long queries.
To make it easier, we are going to add a debug config option to enable/disable cursor repositioning. With this option, the server won't need a WiredTiger code change to enable/disable repositioning as desired.
- Does this affect any team outside of WT?
Yes, there are performance impacts and the server's yielding for SBE depends on the outcome of these tickets.
Acceptance Criteria (Definition of Done)
Can enable/disable repositioning with a config option.