Summary
The WiredTiger log file has the ability to track all operations, not just those associated with logged tables. This is done by passing the following configuration options to wiredtiger_open:
debug_mode=[table_logging,log_retention=XXX]
The goal of this project is to take that information in the log and attempt to construct known-good data.
Motivation
- Does this affect any team outside of WiredTiger? No.
- How likely is it that this use case or problem will occur? N/A
- If the problem does occur, what are the consequences and how severe are they? N/A
- Is this issue urgent? No.
Considerations
We may need additional information in the log to be able to do this.
The log retention policy is important to this being successful - WiredTiger generally archives log files once they aren’t needed (once a checkpoint is finalized in the log, all older log files can be discarded).
Acceptance Criteria (Definition of Done)
For this “reconstruct a known good state” application to be useful, it’ll need to be able to do something similar to WiredTiger, in constructing a version of the data file with a known good state, and then applying further log records on top of it. Otherwise the cost of keeping the log files around will limit the utility of such an approach.
Testing
TBD
Documentation update
TBD