Hybrid Restore: Combine disk-snapshot restore and point-in-time restore for a super fast point-in-time restore
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
On a (cloud) platform that supports disk snapshot, the disk-snapshot based backup and restore can restore a cluster super fast. However, it does not support point-in-time restore which restores the cluster to an arbitrary version in a time period.
The other backup and restore system in FDB supports point-in-time restore, but it is much slower than the disk-snapshot approach.
Can we combine both approach to provide a super fast point-in-time restore on the platform that supports disk snapshot?
The idea is as follows:
Backup a cluster with both approaches. Creating the consistent disk snapshot periodically.
To restore the cluster to a version `v`:
1) Use the disk-snapshot approach to restore the cluster to the closest version, say `v_snapshot` that is below version `v`;
2) Use the next-generation point-in-time restore [1] to apply the mutations between `(v_snapshot, v)` to drive the cluster to the restore version `v`.
[1] Issue https://github.com/apple/foundationdb/issues/1049
Contributor guide
Research direction
Start by reading issue #1049, the referenced next-generation point-in-time restore work, and compare it with the disk-snapshot backup and restore path described here. Determine how a snapshot at version v_snapshot could be followed by mutations through version v, and define the backup, restore, and consistency behavior needed for the combined approach.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100