Binary Image Update Dependency Graph Cycle Resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software update methods face challenges in efficiently updating system images without duplicating the source image, especially when storage is limited, due to cyclic dependencies in transfer ordering, which can lead to incorrect or incomplete updates.
Innovation Solution
A method that determines a dependency graph, breaks cycles to create an acyclic graph, and orders transfers to ensure correct execution without duplicating the source image, using techniques like binary differencing and transfer list management to generate and apply update packages in-place.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the source image is duplicated to create a target image for updates, then update accuracy is improved, but storage requirements increase
Solution Approach 1:
The update process is segmented into multiple transfers that operate on different partitions of the image. Instead of duplicating the entire source image, the system divides the image into partitions and applies transfers selectively to specific partitions, reducing the amount of data that needs to be stored and transferred while maintaining update accuracy.
Solution Approach 2:
The patent introduces an intermediary dependency graph that mediates between the source image and target image. This graph represents the sequence of transfers and their dependencies, allowing the system to apply updates incrementally through multiple passes rather than requiring a complete image duplication, thus reducing storage requirements while ensuring accurate updates.
2Reliability
If multiple transfers are applied to update the image, then update completeness is improved, but transfer ordering complexity increases due to cyclic dependencies
Solution Approach 1:
The system performs preliminary analysis to construct a dependency graph that represents all transfers and their dependencies before executing the actual image updates. By pre-computing the transfer sequence and identifying cyclic dependencies in advance, the system can resolve ordering complexities before the update process begins, ensuring complete and accurate updates without runtime complexity.
Solution Approach 2:
The patent implements a dynamic approach to transfer ordering by using a dependency graph that can be analyzed and adjusted based on the specific update requirements. The system dynamically determines the optimal transfer sequence by detecting and resolving cyclic dependencies, allowing flexible adaptation to different update scenarios while maintaining transfer completeness.
3Quantity of substance
If in-place updates are performed without duplicating the source image, then storage efficiency is improved, but update correctness may be compromised due to cyclic dependencies
Solution Approach 1:
The image is segmented into multiple partitions that can be updated independently through selective transfers. This segmentation allows in-place updates to proceed without requiring complete image duplication, as each partition can be updated using only the necessary source data, maintaining storage efficiency while ensuring update correctness through controlled partition-level operations.
Solution Approach 2:
The dependency graph serves as an intermediary that coordinates in-place updates across multiple partitions. It tracks which partitions have been updated and manages the transfer sequence to prevent correctness issues arising from cyclic dependencies, enabling storage-efficient in-place updates while maintaining update reliability.
Data Source
AI summary
Apparatus and methods for updating binary images are described. A computing device can determine transfers for updating a binary source image to become a binary target image. A transfer can include a source memory reference for the source image and a target memory reference for the target image. The computing device can determine a graph based on ordering dependencies between the transfers. The graph can include vertices for the transfers with edges between vertices. The computing device can generate an edge from a first vertex for a first transfer to a second vertex for a second transfer, with the first transfer to be performed before the second transfer. The computing device can break any cycles present in the graph to obtain an acyclic graph. The computing device can order the transfers based on the acyclic graph and send the ordered transfers in an update package for the source image.


