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

Read-only transactions are being rolled back in MongoDB

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.3.3, 4.2.3
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • 3
    • Storage Engines 2019-12-30

      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.

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: