Exo-clone File Management for Container Image Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional Docker containers lack mature and powerful software for deploying and tracking changes to container images efficiently, leading to wasteful processing time, bandwidth, and resource usage, especially when dealing with applications in production and development environments, as they require sending entire images even if only a small part has changed.
Innovation Solution
The introduction of exo-clones, which create a snapshot of a volume, calculate differences, and package these differences into a file that includes identifiers and state information, allowing for efficient transfer and application of changes across clusters without copying entire images, thereby reducing data transmission and improving productivity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional Docker containers send entire images even when only a small part has changed, then the application can be updated, but significant processing time, bandwidth, and resources are wasted
Solution Approach 1:
The patent segments the container image into multiple layers (base layer, middle layers for libraries, top layer for application binary). This allows only the specific layer containing the changed file to be identified, extracted, and transferred, rather than sending the entire image. The segmentation enables precise targeting of changed content.
Solution Approach 2:
The patent extracts only the specific changed file or layer from the container image. Instead of transferring the complete image, the system identifies the minimal subset of data that contains the changes (e.g., a single modified binary file) and transfers only that extracted portion to the receiving environment.
2Productivity
If Docker builds and pushes the whole top layer image to the registry, then the application can be deployed, but developers' productivity is reduced due to unnecessary pushes and pulls
Solution Approach 1:
The patent extracts only the specific changed file from the container layer rather than building and pushing the entire layer image. This extraction approach eliminates unnecessary data transfer operations, allowing developers to push and pull only the minimal changed content, thereby reducing the time spent on deployment operations.
Solution Approach 2:
The patent applies partial action by transferring only the necessary portion of the container image (the changed file or layer) rather than the complete image. This partial transfer approach reduces the overall time and resources required for deployment operations while still achieving the full update effect.
3Adaptability or versatility
If virtual machine images are used to pack applications, then applications can be deployed, but the large size of VM disk images makes the process cumbersome
Solution Approach 1:
The patent segments the application package into container layers and further into individual files or blocks. This segmentation breaks down the large VM disk image into manageable, transferable units that can be selectively transmitted. Only the necessary segments containing the application and its dependencies are transferred, dramatically reducing the weight of the moving object.
Solution Approach 2:
The patent extracts only the essential application components from the full virtual machine image, creating a minimal container image that contains only what is necessary to run the application. This extraction removes unnecessary overhead and reduces the size of the deployed package while maintaining full adaptability.
Data Source
AI summary
Examples disclosed herein relate to propagating changes made on a file system volume of a primary cluster of nodes to the same file system volume also being managed by a secondary cluster of nodes. An application is executed on both clusters, and data changes on the primary cluster are mirrored to the secondary cluster using an exo-clone file. The exo-clone file includes the differences between two or more snapshots of the volume on the primary cluster, along with identifiers of the change blocks and (optionally) state information thereof. Just these changes, identifiers, and state information are packaged in the exo-clone file and then exported to the secondary cluster, which in turn makes the changes to its version of the volume. Exporting just the changes to the data blocks and the corresponding block identifiers drastically reduces the information needed to be exchanged and processed to keep the two volumes consistent.


