Cluster Object Recovery Using Dependency Graph Snapshots
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in restoring data content of stateful objects in clusters that manage containerized workload and services, such as containerized applications, due to the stateless nature of these applications, leading to incomplete restoration and issues with object dependencies.
Innovation Solution
An object data backup and restore system that identifies data changes and associated metadata, generates a relationship graph based on object dependencies, and restores a target object to a requested point-in-time version while minimizing system downtime by predicting state change propagation and using snapshot tools to capture dependent objects.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If containerized applications are restored using traditional methods, then the restoration process is simple, but the data content of stateful objects is lost due to the stateless nature of containers
Solution Approach 1:
The system performs preliminary actions by capturing snapshots of container stateful objects before restoration. The snapshot tool captures the state of storage volumes and data content at a specific point in time, storing this information in a metadata store. This preliminary capture ensures that data content is preserved and can be restored along with the container, resolving the contradiction between simple restoration and data preservation.
2Reliability
If all objects in a cluster are restored to ensure complete data recovery, then data completeness is improved, but system downtime increases
Solution Approach 1:
The system segments the restoration process by identifying and restoring only the specific target object and its dependent objects rather than restoring all objects in the cluster. The relationship graph traces dependencies between objects, allowing selective restoration of minimal necessary components. This segmentation maintains data completeness for the target object while minimizing system downtime by avoiding unnecessary restoration of unrelated objects.
Solution Approach 2:
The system applies local quality by treating different objects in the cluster differently based on their relationship to the target object. Objects that are dependent on the target object receive restoration attention, while independent objects remain unchanged. This localized approach ensures data completeness for the target object and its dependencies without the overhead of restoring the entire cluster, thus reducing system downtime.
3Reliability
If object dependencies are fully traced and restored, then restoration completeness is improved, but restoration complexity increases
Solution Approach 1:
The system introduces intermediaries in the form of a relationship graph and dependency tracing mechanism. The relationship graph serves as an intermediary data structure that captures object dependencies, while the dependency tracing mechanism acts as an intermediary process to identify affected objects. These intermediaries automate the complex task of tracing object relationships, making the restoration process more manageable and less complex while ensuring restoration completeness for all dependent objects.
4Reliability
If snapshots are captured frequently to ensure data availability, then data recovery capability is improved, but storage resource consumption increases
Solution Approach 1:
The system uses copying by creating snapshots that are point-in-time copies of container stateful objects and their data content. These snapshots are stored in a metadata store and can be used for restoration without requiring continuous duplication of all data. The snapshot mechanism creates efficient copies that capture the essential state information, providing strong data recovery capability while managing storage resource consumption through selective and incremental copying of changed data.
Data Source
AI summary
A object data backup and restore method and system include receiving a request to restore a target object to a first point-in-time version; identifying a first snapshot of the cluster corresponding to the first point-in-time version; generating a second snapshot of the cluster upon receiving the request to restore the target object; determining data changes associated with the target object based on the first snapshot and second snapshot; scanning all objects associated with the cluster to determine one or more additional objects that are affected by restoring the target object due to object dependencies defined by a cluster configuration; generating a relationship graph for the one or more additional objects and the target object; and restoring the target object based on the data changes, the first snapshot and the relationship graph.


