Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-9134

Document WiredTiger expectations for transaction progress

    • Type: Icon: Documentation Documentation
    • Resolution: Fixed
    • Priority: Icon: Minor - P4 Minor - P4
    • WT11.0.0, 6.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None

      Summary
      Update the WiredTiger programming guide (and possibly relevant locations in API guide) to document the fact that WiredTiger expects that applications will not pause active transactions.

      Motivation

      WiredTiger's programming model, and in particular its cache management, assumes that when an application starts a transaction it will not pause arbitrarily in the middle of the transaction. Instead the preferred application behavior is for an application performing a transaction to make steady progress. I.e., the application should keep calling into WT to either add to or finish the transaction.  

      Application writes who don't realize that Wiredtiger works this way can write applications that suffer from long stalls that are hard to reason about.  A common scenario is for the thread that owns the oldest transaction to not call into WiredTiger while other threads in WiredTiger block in eviction waiting for the oldest transaction to be rolled back.  

      We should provide some high-level guidance about this in the documentation.

       

            Assignee:
            keith.smith@mongodb.com Keith Smith
            Reporter:
            keith.smith@mongodb.com Keith Smith
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: