Hash-Based Data Sync for Offline Client-Backend Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data synchronization methods for business computing systems are inefficient, particularly when dealing with large volumes of business data, as they often rely on brute force comparisons of entire data records, which are computationally expensive and time-consuming.

Innovation Solution

The implementation of a data synchronizing system that uses hashing to compare hash values of data records stored on client computing devices with those on backend databases, allowing for efficient identification and synchronization of differences without the need for byte-by-byte comparisons.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If brute force comparison of entire data records is used for synchronization, then data accuracy is ensured, but computational cost and synchronization time increase significantly

Engineering Contradiction:
Improvedata comparison accuracyVSAvoidsynchronization speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the data comparison process into two stages: first comparing hash values (a condensed representation of the entire data record), and only if hash values match, then performing a full byte-by-byte comparison of the actual data records. This segmentation resolves the contradiction by using a fast preliminary filter (hash comparison) to avoid unnecessary full comparisons, thereby improving synchronization speed while maintaining data accuracy through the secondary verification step.

Inventive Principle:
Principle #1Segmentation

2Productivity

If hash value comparison is used for data synchronization, then synchronization time and computational load are reduced, but there is a risk of hash collision causing incorrect synchronization

Engineering Contradiction:
Improvesynchronization speedVSAvoidsynchronization accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by performing hash value comparison before the full data record comparison. The hash comparison serves as a preliminary filter that quickly identifies matching records, allowing the system to proceed with confidence that these records are indeed identical. This preliminary step resolves the contradiction by enabling fast synchronization while the nature of cryptographic hash functions (designed to be collision-resistant) maintains reliability.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If full data records are transmitted during synchronization, then data completeness is ensured, but network bandwidth consumption and transmission time increase

Engineering Contradiction:
Improvedata completenessVSAvoidtransmission time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent uses hash values as a compact copy or representation of the entire data record. Instead of transmitting full data records for comparison, the system transmits and compares only the hash values (which are much smaller in size). When synchronization is needed, only the specific data records that require updating are transmitted, not all records. This copying approach resolves the contradiction by dramatically reducing transmission time and bandwidth consumption while maintaining data completeness through selective transmission of only necessary records.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10394781B2Synchronization of offline data
Publication Date: 2019.08.27 SAP SE
  • US10394781B2 patent drawing
  • US10394781B2 patent drawing
  • US10394781B2 patent drawing

AI summary

A method includes initiating, at backend server, a process for synchronization of a data record stored locally on a client computing device with a corresponding data record stored in a backend database. The synchronization process includes comparing the hash value of the data record stored locally on the client computing device and the hash value of the corresponding data record stored in the backend database, and based on the comparing, sending information about the corresponding data record stored in the backend database to the client computing device, if needed for updating the data record stored locally on the client computing device.