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

Modify operations should be equivalent to updates

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • WT3.2.1, 4.1.12, 4.0.11, 3.6.14
    • None
    • None
    • Storage Engines 2019-05-20
    • v4.0, v3.6

    Description

      While testing SERVER-41016, which converts updates into modifications, some test failures were found and investigated.

      The problem is that while MongoDB performs operations at snapshot isolation (so each successful update is guaranteed to read the immediately previous version), it does not always assign timestamps in order. In particular, metadata updates to the _mdb_catalog table are sometimes assigned synthetic timestamps for operations without entries in the oplog. Some of these updates satisfy the conditions for conversion to modifications (the underlying document is larger than 1KB and the changes are less than 10% of the document size).

      In this situation, when applying the modifications, WiredTiger should use apply all previous modifications until it finds a complete copy of the document. Once a modify is identified as the most recent visible version for a value WT should not apply normal visibility rules to the prior versions – they were visible when the modify was performed, so should be included in the read.

      Attachments

        Issue Links

          Activity

            People

              michael.cahill@mongodb.com Michael Cahill (Inactive)
              michael.cahill@mongodb.com Michael Cahill (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: