Persisted Container Updates Using Delta Layers for State Preservation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing container computing environments face challenges in preserving the state of containers across updates, particularly due to dependency issues arising from modifications to the read-only portion, such as operating system updates, which can invalidate the writeable portion and lead to loss of persisted state.
Innovation Solution
A system and method for managing container updates by recording updates and side effects as separate delta layers and storages, using a data structure to maintain dependencies, and employing a filesystem filter driver to capture and record these changes, ensuring the original content remains intact.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If modifications are made to the read-only portion of a container (e.g., operating system updates), then the base layer can be updated, but dependency issues arise with the preserved state of the writeable portion, causing loss of persisted state
Solution Approach 1:
The container is divided into separate layers: a base layer (read-only) and a writeable portion (writeable). This segmentation allows independent updates to the base layer without affecting the persisted state in the writeable portion, resolving the dependency issue between layer updates and state preservation.
Solution Approach 2:
The writeable portion is extracted as a separate, independent entity from the base layer. By taking out the writeable portion as an independent layer, it can maintain its persisted state without being invalidated by modifications to the base layer, enabling both updates and state preservation.
2Reliability
If the writeable portion is made independent to preserve state across updates, then state persistence is improved, but complexity increases in managing layer dependencies and updates
Solution Approach 1:
A layer manager component is introduced as an intermediary to handle the complexity of managing layer dependencies. The layer manager coordinates updates between the base layer and writeable portion, automatically handling the relationships and reducing the burden on users while maintaining state persistence.
3Adaptability or versatility
If traditional container updates are performed, then base layer can be modified, but the state of the container cannot be preserved across updates
Solution Approach 1:
The writeable portion is prepared in advance as a separate layer before base layer updates occur. This preliminary structuring ensures that when base layer updates are performed, the writeable portion's state is already isolated and protected, preventing information loss while allowing base layer adaptability.
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
Examples of the present disclosure describe devices, systems, and methods for persisting containers across updates. In examples, a computing device receives an update to a base layer of the device associated with a persisted storage of a container stored by the device. The content of the persisted storage is used as input to the base layer. The device applies the update to the base layer and determines the side effects of the update on the content of the persisted storage. The device then records the sequence of operations as a delta layer for the base layer and side effects as a delta storage for the persisted storage. Recording includes associating the delta storage with the persisted storage, the delta layer with the base layer, and the persisted storage with the base layer, such that the content of the persisted storage is used as input to the delta layer.