Block-Based Differencing Algorithm for Memory-Constrained File Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current differencing technologies face challenges in efficiently updating large files with limited memory, as they often require excessive bandwidth and storage, and struggle to optimize patch block sizes for compression, leading to suboptimal performance, especially in devices with memory constraints.

Innovation Solution

A block-based differencing system that divides files into adaptive-sized blocks, allowing independent processing and compression, with a separate compression step using algorithms like BWT to ensure optimal block alignment and minimize memory usage, enabling efficient patching even in limited memory scenarios.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If differencing algorithms process data continuously in one operation, then they can reference the entire source file for optimal patch generation, but they require excessive memory space to accommodate both source and target files

Engineering Contradiction:
Improvepatch generation accuracyVSAvoidmemory space
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent divides the continuous data stream into discrete blocks that can be processed independently. Each block is identified by position and size metadata, allowing the differencing algorithm to process blocks in any order without requiring the entire source file to be loaded into memory simultaneously. This segmentation enables memory-efficient processing while maintaining the ability to reference source file portions as needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of block ordering optimization. Instead of processing blocks in a single fixed sequence, the system evaluates multiple ordering permutations and selects the optimal order that minimizes the sum of patch block sizes. This adds an optimization layer that resolves the contradiction by finding the best processing sequence for memory-constrained environments.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Quantity of substance

If patch blocks are made small to fit memory constraints, then memory usage is reduced, but compression efficiency decreases due to the initial learning curve of adaptive compressors

Engineering Contradiction:
Improvememory consumptionVSAvoidcompression efficiency
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The patent implements adaptive block sizing that dynamically adjusts block dimensions based on available memory constraints. The system calculates optimal block sizes that balance memory usage against compression efficiency, ensuring blocks are large enough to achieve good compression ratios while remaining small enough to fit within available memory. This dynamic adjustment resolves the contradiction between memory constraints and compression performance.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If the differencing algorithm processes arbitrarily large files in limited memory, then it can operate on files larger than available memory, but it cannot reference the entire source file for optimal patch generation

Engineering Contradiction:
Improvefile size handlingVSAvoidpatch optimization
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The patent performs preliminary indexing and metadata generation for the source file before the actual differencing process. This preliminary action creates a reference structure that allows the algorithm to quickly locate and reference specific portions of the source file without loading the entire file into memory. Blocks are processed in an optimized order determined by this preliminary analysis, enabling both large file handling and optimal patch generation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8843532B2Block-based differencing algorithm
Publication Date: 2014.09.23 SMITH MICRO SOFTWARE INC
  • US8843532B2 patent drawing
  • US8843532B2 patent drawing
  • US8843532B2 patent drawing

AI summary

A system and method for a block based differencing algorithm which includes the ability to limit memory requirements regardless of source file sizes by splitting the source file into optimally sized blocks. The invention allows the blocks to be processed in any order allowing in-place operation. Further, the present invention allows a second stage compressor to match the compressor blocks to those used by the differencing algorithm to optimize compressor and decompressor performance.