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

Rework the tombstone visibility checks for history store cursor previous and next calls

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical - P2
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT10.0.0, 4.4.5, 4.9.0-rc1, 5.0.0-rc0
    • Component/s: None
    • Labels:
      None
    • Story Points:
      5
    • Sprint:
      Storage - Ra 2021-03-22, Storage - Ra 2021-04-05

      Description

      In the current implementation of __curhs_prev_visible(), we keep iterating backwards to find a record that is visible. We continue doing even when we hit an update that has globally visible tombstone. This is problematic for two reasons:

      • If we hit an update that has globally visible tombstone, we will not be able to see any update for the key before that. Therefore, we are wasting effort by continuing to iterate (this is evident from BF-20400).
      • We can potentially reading updates that are older than oldest timestamp. Any updates that are older than timestamps can be freed and result in cursor iteration to read a record that is not valid anymore (which can explain BF-20391). 

      The aim of this ticket is to review and fix __curhs_prev_visible() and run MongoDB patch tests to verify the solution. 

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              haseeb.bokhari Haseeb Bokhari
              Reporter:
              haseeb.bokhari Haseeb Bokhari
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: