Details
-
Task
-
Status: In Progress
-
Major - P3
-
Resolution: Unresolved
-
None
-
None
-
None
-
StorEng - Refinement Pipeline
Description
It would be useful for WiredTiger to validate/verify the data in a file along with the file's entries in the history store. The basic idea would be to have a function that is part of WT_SESSION::verify() and walks the contents of a file and its history together checking invariants. Ideally this can be done in such a way that it is trivial to add new variants.
Off the top of my head some possible invariants:
- If a key exists in the history store, it must also exist in the data file
- At most one value for a key can be visible at any timestamp.
Background
A form of this functionality was implemented during the durable history project. It was commented out because of WT-6676, which was fixed as part of WT-8447. This ticket was originally created to re-enable initial history verification code. But over time the initial history store verification bit-rotted as the code around it changed, and it was removed from the develop branch in WT-8572. That code might be a good starting point for this work. It can be found in the PR for WT-8572.