-
Type: New Feature
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
StorEng - Refinement Pipeline
MongoDB uses long-running WT transactions to implement multi-statement transactions. The problem is that these transactions may be idle for long periods of time (up to 1 minute) and when the WT cache is under pressure, we need to target these transactions for rollback. If these transactions are idle, however, WT cannot roll them back.
As an alternative proposal to WT-9035, I would like to propose an API that MongoDB can call periodically on idle WT sessions that will roll back the transaction if it is blocking cache eviction and otherwise do nothing. In this way, we could quickly iterate through our idle sessions to make sure the cache is not getting stuck.
This API would need to be non-blocking. That is, after rolling back the transaction the caller should have the option to not participate in cache eviction.
- is depended on by
-
SERVER-64982 Extended lack of availability caused by transactions
- Blocked
- is related to
-
SERVER-77172 "abortExpiredTransactions" thread can get stuck if it fails to checkout a session
- Closed
-
WT-12560 Application thread is stuck in forced eviction because of uncommitted updates
- Closed
-
WT-9040 Configuration for transaction commit and rollback to skip eviction
- Closed
- related to
-
WT-9035 Asynchronously roll back transactions due to cache pressure
- Closed
-
SERVER-61251 Ensure long running storage engine operations are interruptible
- Backlog