Implement proper visible_all for reading checkpoints

XMLWordPrintableJSON

    • None
    • None

      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...

              Assignee:
              Keith Bostic (Inactive)
              Reporter:
              David Holland
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: