Segmented Application Patching for Low-Memory Software Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If entire patches are downloaded and installed at once, then application updates are completed, but storage space requirements increase significantly

Engineering Contradiction:
Improvepatch installation completenessVSAvoidstorage space consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

2Productivity

If entire patches are downloaded before installation, then patch installation can proceed, but memory consumption increases

Engineering Contradiction:
Improvepatch installation speedVSAvoidmemory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If patches are applied incrementally in segments, then memory consumption is reduced, but installation time increases

Engineering Contradiction:
Improvememory consumptionVSAvoidpatch installation time
Core Design Contradiction:
Quantity of substanceVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3874365B1Memory efficient software patching for updating applications on computing devices
Publication Date: 2025.11.26 GOOGLE LLC
  • EP3874365B1 patent drawingFigure 1
  • EP3874365B1 patent drawingFigure 2
  • EP3874365B1 patent drawingFigure 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.