Fenced Clone Application Snapshots for Distributed Storage Rollback
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current distributed storage and computation systems lack an efficient method for creating and managing snapshots of databases, which hinders the ability to revert to previous states without corrupting critical data during testing or configuration changes.
Innovation Solution
A method is introduced that involves a storage manager coordinating the creation of snapshots by quiescing compute nodes, finalizing storage node segments, and maintaining snapshot hierarchies, allowing for the efficient creation, cloning, and rollback of storage volumes across multiple storage nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If snapshots are created to enable system rollback, then data integrity is improved, but system complexity increases due to coordination requirements across compute and storage nodes
Solution Approach 1:
The system segments the snapshot creation process into distinct phases: compute node quiescing, storage node segment finalization, and snapshot hierarchy maintenance. This segmentation allows each component to perform its function independently, reducing coordination complexity while ensuring data integrity through structured phase transitions.
Solution Approach 2:
The system performs preliminary quiescing of compute nodes before creating storage snapshots. This preliminary action ensures that no write operations are in-flight when the snapshot is taken, guaranteeing data consistency without requiring complex locking mechanisms during the actual snapshot creation.
2Reliability
If multiple snapshots are maintained for testing and rollback, then operational reliability is improved, but storage space consumption increases
Solution Approach 1:
The system implements a nested snapshot hierarchy where clone snapshots are nested within parent snapshots. This nested structure allows the system to maintain multiple snapshot versions while efficiently sharing common data blocks between parent and child snapshots, significantly reducing total storage space requirements compared to maintaining independent copies of each snapshot.
3Adaptability or versatility
If clone snapshots are created for testing, then adaptability is improved, but data corruption risk increases if not properly isolated
Solution Approach 1:
The system introduces an intermediary snapshot hierarchy structure that sits between the original data and clone snapshots. This intermediary layer provides controlled isolation, allowing testing operations on clones without direct access to parent snapshot data, thereby preventing data corruption while maintaining testing flexibility.
Solution Approach 2:
The system creates clone snapshots as copies of parent snapshots, establishing a clear replication relationship. This copying mechanism ensures that clones are initially identical to parents but can be modified independently, providing testing adaptability while the copy relationship itself serves as a protective barrier against corruption of original data.
Data Source
AI summary
Snapshots of storage volumes and containers of a bundled application may be created and used to rollback or clone the bundled application. Clone snapshots of storage volumes may be gradually populated with data from prior snapshots to reduce loading on a primary snapshot. Components of cloned applications may communicate with one another using addresses of these components in the parent application. Containers of the bundled application may communicate with an open virtual switch (OVS) that implements flows to implement translation between clone and parent addresses. Containers may be modified to execute operation-specific entrypoint functions prior to invoking an entrypoint of an application instance loaded in the containers.


