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

Read-only transactions are being rolled back in MongoDB

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • WT10.0.0, 4.3.3, 4.2.3
    • None
    • None
    • 3
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: