Redwood persisted version history not accessible after recovery from disk
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
The BTree root for a version is stored in the pager's "meta record" that is provided by the BTree for each commit. Since the pager doesn't keep a history of these on disk, after recovery from disk it isn't possible to discover old BTree roots.
To solve this, the meta records sent to the Pager will be moved to a FIFOQueue. This queue will be recovered upon startup, so all prior versions will be readable. The queue will be popped up to a version in the same commit in which that version becomes unreadable.
This change is a step toward making Redwood recoverable to any prior version on still present in this new queue on disk. To complete that feature, history needs to be kept for some additional Pager state and FIFOQueue pages must be freed on a delay.
Contributor guide
Assessment
This issue has not been assessed yet.