Segmented Application Patching for Low-Memory Software Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing application update processes require significant storage space on user computing devices, leading to memory constraints and inefficient bandwidth utilization due to the need to download and install entire patches, which can be large in size.
Innovation Solution
The method involves segmenting patches into smaller segments and sending them individually to the user device, along with metadata indicating when to delete unpatched application assets, allowing for efficient memory management and reduced storage requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If entire patches are downloaded and installed at once, then application updates are completed, but storage space requirements increase significantly
Solution Approach 1:
The patent divides the entire patch into multiple segments that can be downloaded and applied incrementally. Each segment represents a portion of the patch that can be processed independently, allowing the system to update applications without requiring storage space for the complete patch at once. This segmentation resolves the contradiction by maintaining installation completeness while reducing storage space consumption.
2Productivity
If entire patches are downloaded before installation, then patch installation can proceed, but memory consumption increases
Solution Approach 1:
The patch is segmented into smaller units that can be processed incrementally during installation. This allows the system to maintain lower memory consumption by not loading the entire patch into memory at once, while still achieving complete application updates. The segmentation enables progressive processing that balances productivity with memory efficiency.
Solution Approach 2:
The system performs preliminary actions by downloading and preparing patch segments in advance, then applies them incrementally. This preliminary segmentation and preparation allows the installation process to proceed efficiently without requiring large amounts of memory to be available simultaneously, resolving the contradiction between installation speed and memory consumption.
3Quantity of substance
If patches are applied incrementally in segments, then memory consumption is reduced, but installation time increases
Solution Approach 1:
By segmenting the patch into manageable portions, the system can apply updates incrementally without requiring excessive memory. The segmentation allows for efficient processing where each segment can be handled independently, reducing memory pressure while maintaining reasonable installation throughput. This resolves the contradiction by enabling memory-efficient incremental installation.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In general, techniques are described by which to perform memory efficient patching for computing devices. A server computing device comprising a memory and a processor may be configured to perform the techniques. The memory may store first assets that form an unpatched application and second assets that form a patched application. The processor may virtualize the first assets to obtain a single first virtual asset and obtain a single second virtual asset that represents the second assets. The processor may obtain, based on differences between the single first virtual asset and the single second virtual asset, a patch identifying how to update the single first virtual asset to obtain the single second virtual asset. The processor may next segment the patch into a plurality of segments and output to a user computing device a single segment from the plurality of segments for individual application by the user computing device.