Improve handling of transactions with massive amount of dirty content

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major - P3
    • WT12.0.0, 9.1.0-rc0
    • Affects Version/s: None
    • Component/s: Transactions
    • None
    • Storage Engines - Transactions
    • 680.667
    • SE Transactions - 2026-08-14
    • 3

      We've had at least one issue (see comment) where Mongo has tried to insert a single oplog batch with approx 340MB of dirty content. This one transaction exceeded the cache's dirty limit (the WT cache's total size was only 2GB in this case).

      In this case, the outcome was that we pulled the oplog applier thread into trying to do eviction that would literally never reduce dirty content adequately (since the transaction isn't committed).

      A better outcome would've been something like: recognise that this is one massive transaction and let it "burst" past the dirty limit, or fail the transaction and set an E2BIG error code somewhere. I don't want to be too prescriptive, there are probably a lot of ways we could solve this.

            Assignee:
            Haribabu Kommi
            Reporter:
            Will Korteland
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: