Summary:
Follow-on to WT-5387, don't take threads that are resolving prepared transactions to assist with eviction.
As part of WT-5387, we made changes to reuse cursors when resolving prepared operations on behalf of transaction resolution or timestamp checking, rather than opening a new cursor for every prepared operation. That change requires the cursor discard its held hazard pointer after each operation.
The standard functions to discard cursor hazard pointers also do additional housekeeping work, like allocating snapshots and checking the cache. If the cache is struggling and the cursor is "idle", the thread is tasked with helping out eviction. If the cache is struggling, taking a cursor that's resolving a transaction to assist with eviction is the wrong choice, letting the transaction resolve is likely to allow pages to be evicted, and it's unlikely to be making the situation worse.
- is caused by
-
WT-5387 Prepared transaction resolution can stall eviction on active pages
- Closed