Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-100367

Aborting idle multi-document transactions as soon as possible when under cache pressure

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • RSS Sydney
    • FarewellDaniel - 2025-02-18, HappyAddy - 2025-03-04, PastaLaVista - 2025-03-18

      The PeriodicThreadToAbortExpiredTransactions will be extended to rollback idle multi-document transactions while WiredTiger is under cache pressure. Transactions will be rolled back from oldest to newest, which is the same eviction policy that WiredTiger uses. Multi-statement transactions are tracked in the TransactionParticipant, but we'll need to order them based on age in order to make it efficient when identifying transactions to rollback. This doesn't have to be in the same order that WiredTiger maintains internally. This will require the storage engine interface in the server to expose a new API call to identify when WiredTiger is under cache pressure. The server will look at the cache_eviction_state statistic as a starting point in order to unblock server development, specifically checking whether WT_EVICT_CACHE_DIRTY_HARD is set. This metric should not be used in production. WiredTiger does not promise that those fields will keep the same numerical values across releases. WiredTiger is going to look at adding a statistic that is a better fit for the purpose (WT-14075).

            Assignee:
            ruby.chen@mongodb.com Ruby Chen
            Reporter:
            gregory.wlodarek@mongodb.com Gregory Wlodarek
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: