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

Implement proper visible_all for reading checkpoints

      It turns out that reading from a history store checkpoint correctly requires doing accurate visible_all checks relative to the checkpoint context; bypassing them doesn't work. This is because it's possible for outdated history store entries with globally visible stop times and nonzero start times to hang around; they are necessarily sorted (and thus seen during reads) before more recently added entries with zero start times and later stop times. They're supposed to be skipped over via a global visibility check; that check can't be shortcut. (Assuming all stop times are globally visible causes items to disappear; assuming none are causes obsolete stop times to be honored and thus also causes items to disappear.) Therefore, visible_all needs to be able to test against the checkpoint's oldest timestamp and the checkpoint's transaction state. Fortunately all the needed information is reasonably readily available...

            keith.bostic@mongodb.com Keith Bostic (Inactive)
            dholland+wt@sauclovia.org David Holland
            0 Vote for this issue
            2 Start watching this issue