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

Read-only transactions are being rolled back in MongoDB

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT3.2.2, 4.3.3, 4.2.3
    • Component/s: None
    • Labels:
      None
    • Story Points:
      3
    • Sprint:
      Storage Engines 2019-12-30

      Description

      Summary:

          The work in WT-4715 and WT-5082 (to be more aggressive about rolling back transactions in threads that have been co-opted to help with eviction, but are holding the oldest timestamp in the system), used the fact that a transaction ID had been allocated to decide if a transaction was read-only or not. That's not correct in all cases, and this ticket replaces that test with a better one.

       

      Debug table logging allocates transaction IDs for all operations. Read-only operations that set a "read_timestamp" will log a debug record, and consequently allocate a transaction ID. The operation then becomes eligible for being aborted due to high cache pressure, returning WT_ROLLBACK to the caller.

      This breaks an assumption by MongoDB that read-only operations will not return WT_ROLLBACK.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                keith.bostic Keith Bostic
                Reporter:
                louis.williams Louis Williams
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: