Follower should use shared history store at a checkpoint that matches the cursor

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: History Store
    • None
    • Storage Engines
    • None
    • None

      For correctness, the follower cannot just use shared history store at the most recent checkpoint, because that history store may have values that have aged out. Consider for key 'A' on the leader:

      timestamp 10: 'A' <- 'W' inserted
      timestamp 20: 'A' <- 'X' updated
      timestamp 30: checkpoint
      timestamp 40: 'A' <- 'Y' updated
      timestamp 50: 'A' <- 'Z' updated
      oldest timestamp set to 20
      value 'W' ages out of history store.
      timestamp 60: checkpoint

      At timestamp 60, the shared history store does not contains A=W for any timestamp.

      Meanwhile the follower has checkpoint 30. A read transaction starts, read timestamp 10. Perhaps the cursor on this table is open already, perhaps not. During the transaction, the checkpoint at 60 is picked up. Then the transaction reads value 'A'. It cannot use the most recent history store, which does not contains 'W', it must use the history store based on the read timestamp.

      This ticket is spun off of WT-15800, since it's really a separate issue from the main focus there.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Donald Anderson
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: