[SERVER-61454] Change retry policy when txns are rolled back for eviction Created: 12/Nov/21  Updated: 06/Dec/22  Resolved: 17/Jan/22

Status: Closed
Project: Core Server
Component/s: Stability
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Eric Milkie Assignee: Backlog - Storage Execution Team
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on WT-8290 Adding a new API to the session to re... Closed
Duplicate
duplicates SERVER-60839 Introduce a TemporarilyUnavailable er... Closed
Related
related to SERVER-61909 Hang inserting or deleting document w... Closed
Assigned Teams:
Storage Execution
Participants:

 Description   

When WiredTiger is under a certain extreme level of dirty cache pressure, it will roll back a candidate longest-running transaction and output a message oldest pinned transaction ID rolled back for eviction

Today, when this occurs, it is translated into a WriteConflictException, which retries the operation almost immediately. This can result in a situation, particularly where CPU is scarce, where the system live-locks retrying operations forever and never making progress, if the operations themselves are CPU-intensive.
Ideally, for this specific type of rollback, the retry loop would pause a (relatively long, say multiple seconds) amount of time before retrying.



 Comments   
Comment by Louis Williams [ 30/Nov/21 ]

We can't do this without support from WiredTiger. This is dependent on WT-8290, as is SERVER-60839, which would allow that error to be surfaced by MongoDB.

Generated at Thu Feb 08 05:52:27 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.