Patch File Data Block Identification Using Two-Stage Hash Comparison
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing difference information generating software fails to efficiently determine identical data blocks between different versions of patch files due to shifts in recording positions, leading to ineffective reduction in data distribution amounts and inefficient duplicate data searching.
Innovation Solution
An information processing apparatus that calculates and compares hash values of data blocks in patch files, using a first-stage comparison with 64-bit rolling hash values and a second-stage comparison with 256-bit hash values to determine identical data blocks, thereby reducing the amount of data to be distributed by identifying only the necessary data blocks for distribution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If hash values are compared to determine identical data blocks between patch files, then data distribution amount is reduced, but recording position shifts cause false negatives where identical data is not recognized
Solution Approach 1:
The patent divides the data block comparison process into two stages: first comparing 64-bit hash values for quick filtering, then comparing 256-bit hash values for final verification. This segmentation allows efficient processing while maintaining high accuracy in identifying identical data blocks despite recording position shifts.
Solution Approach 2:
The patent changes the parameter of hash value bit length dynamically - using 64-bit hash values for initial broad comparison and 256-bit hash values for final precise verification. This parameter change strategy enables both efficiency in large-scale comparison and reliability in final determination.
2Loss of substance
If comprehensive comparison of all data blocks is performed to ensure accuracy, then data distribution amount is reduced, but processing time increases
Solution Approach 1:
The comparison process is segmented into two distinct stages with different hash value lengths. The first stage uses 64-bit hash values to quickly eliminate non-matching blocks, and the second stage uses 256-bit hash values only for blocks that passed the first stage, significantly reducing total processing time while maintaining accuracy.
Solution Approach 2:
Instead of performing full 256-bit hash comparisons on all data blocks, the patent applies partial action by first using computationally lighter 64-bit hash comparisons to filter out obvious non-matches, then applying the more computationally intensive 256-bit comparisons only to candidate blocks that passed the initial filter.
3Reliability
If two-stage hash value comparison is implemented, then data block identification accuracy is improved, but device complexity increases
Solution Approach 1:
The patent segments the hash value comparison into two distinct stages with clearly defined purposes: first-stage 64-bit hash comparison for rapid filtering and second-stage 256-bit hash comparison for definitive verification. This segmentation manages complexity by organizing the process into manageable, sequential steps.
Solution Approach 2:
The first-stage 64-bit hash comparison serves as a preliminary action that prepares the data by identifying candidate blocks before the more complex second-stage verification. This preliminary filtering simplifies the subsequent detailed comparison by reducing the number of blocks requiring full 256-bit verification.
Data Source
AI summary
Disclosed herein is an information processing apparatus including a first holding section configured to hold a first patch file, a second holding section configured to hold a first hash value of each data block in a second patch file including a plurality of data blocks each having a predetermined block size, a hash value calculating section configured to calculate a first hash value of data corresponding to the block size in the first patch file, and a comparing section configured to compare the first hash value calculated by the hash value calculating section with the first hash value of each data block held in the second holding section, as a first-stage comparison process.


