Incremental Backup Free Block Map Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing block-based incremental backup methods face a trade-off between resource consumption and performance, as they either require tracking all changed blocks persistently, impacting resources, or necessitate full backups after system reboots/crashes if changes are not logged persistently.
Innovation Solution
Implementing a persistently stored free block map to track only modified blocks not in the previous backup, using an in-memory change block log to mark blocks as 'modified' and propagate changes to a persistently stored log, allowing incremental backups without tracking all writes post-reboot/crash.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all changed blocks are tracked in a persistently-stored log, then incremental backups can be performed after system reboot or crash, but resource consumption increases and performance may be impacted
Solution Approach 1:
The patent segments the backup tracking mechanism into two parts: an in-memory change block log for active tracking and a persistently-stored free block map for recovery. This segmentation allows the system to maintain reliability by persisting only the free block map while using the in-memory log for performance-critical operations, thus resolving the contradiction between reliability and productivity.
Solution Approach 2:
The system performs preliminary action by maintaining a persistently-stored free block map that records the state of free blocks before backup operations. This preliminary record allows the system to recover and continue incremental backups after reboots without requiring full persistent tracking of all changes, thereby maintaining reliability while preserving performance.
2Reliability
If all changed blocks are tracked in a persistently-stored log, then complete backup tracking is achieved, but storage resources are consumed
Solution Approach 1:
The patent extracts only the essential information needed for backup recovery - the free block map - and stores it persistently, while leaving the detailed change block tracking in memory. This extraction approach achieves complete backup tracking reliability by preserving the free block state while minimizing persistent storage consumption by not storing all individual change blocks.
3Productivity
If no persistent tracking is implemented, then resource consumption is reduced, but full backup operations are required after system reboot or crash
Solution Approach 1:
The system performs preliminary action by pre-computing and persistently storing the free block map, which captures the state of free blocks at the time of backup. This preliminary persistent record enables the system to resume incremental backups quickly after reboots without requiring full backups, thus reducing time loss while maintaining resource efficiency by not implementing full persistent change tracking.
4Productivity
If in-memory change block logging is used without persistent storage, then performance is maintained, but backup continuity after crash is lost
Solution Approach 1:
The patent segments the logging system into an in-memory change block log for performance and a persistently-stored free block map for reliability. The in-memory log maintains backup operation speed by avoiding persistent I/O for each change, while the persistent free block map ensures backup continuity by providing a recovery point after crashes, thus resolving the contradiction between productivity and reliability.
Data Source
AI summary
Techniques to back up data are disclosed. In various embodiments, a copy of a free block map as of a first time associated with a first backup is stored in persistent data storage. Writes made subsequent to the first backup to blocks not listed as free in the copy of the free block map as of the first time are tracked in a persistently-stored change block tracking log. A free block map as of a second time and the previously-stored copy of the free block map as of the first time are used to determine which blocks listed as free in the free block map as of the first time have been written to since the first time. At least a subset of blocks determined to have been written to since the first time are including in an incremental backup.


