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

Modify operations should be equivalent to updates

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT3.2.1, 4.1.12, 4.0.11, 3.6.14
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Storage Engines 2019-05-20
    • v4.0, v3.6

      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.

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