Hash-Based Change State ID for Distributed Data Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed application architectures, ensuring data consistency and preventing concurrent changes to application data is challenging, especially in stateless web services that lack persistence and cannot account for industry- or customer-specific data extensions using uniform hash calculations.
Innovation Solution
A method and system that generate and compare unique identifiers using hash functions for data structures to determine if data remains current after operations, incorporating a uniform hash data structure scheme and business add-ins for handling customized data extensions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a lock is employed on application data to prevent concurrent changes, then data consistency is improved, but system availability and concurrency are worsened
Solution Approach 1:
The system performs preliminary actions by generating change state identifiers and storing them with the data before any operations occur. This allows the server to later verify data currency without requiring locks, as the verification logic is already in place through the pre-stored identifiers.
Solution Approach 2:
The patent replaces the mechanical locking system with a cryptographic verification system. Instead of using locks to prevent concurrent access, the system uses hash-based change state identifiers to detect and prevent operations on outdated data, substituting physical access control with mathematical verification.
2Ease of manufacture
If a uniform hash calculation is used to generate data identifiers, then processing simplicity is improved, but adaptability to customized data extensions is worsened
Solution Approach 1:
The hash calculation process is segmented into two distinct parts: a uniform hash calculation for standard data fields and a customizable hash calculation for extended data fields. This segmentation allows each part to be optimized independently - the uniform part maintains simplicity while the customizable part handles adaptability to customer-specific extensions.
Solution Approach 2:
Different hashing strategies are applied to different parts of the data structure. Standard fields use a fixed uniform hash calculation, while extended fields use customizable calculations that can be configured based on specific customer requirements. This local differentiation resolves the contradiction between uniformity and adaptability.
3Productivity
If web services are designed to be stateless, then service scalability is improved, but ability to track data operations is worsened
Solution Approach 1:
The system creates copies of critical data elements (change state identifiers) and stores them in multiple locations - both in the backend database and in the client application. This copying mechanism allows the stateless web service to maintain data tracking information without requiring persistent server-side state, as the verification data is replicated to the client.
Data Source
AI summary
In a method and system for updating data in a distributed system, a server receives a request to read data stored in the server. A data structure is populated with the requested data, and a first unique identifier is generated by applying a hash function to the data stored in the data structure. The data and the first unique identifier are transmitted to the requesting client. From the client system, the server receives the first unique identifier and changes to the requested data performed on the client system through a web service application. The changes include an extension to the requested application data to include customer-specific data. Following receipt of the changed data and the first unique identifier, a second data structure is populated with the requested data. A second unique identifier is generated by applying a hash function to the data stored in the second data structure. The server compares the first and the second unique identifiers, and if the identifiers are identical, the requested data is replaced by the changed data. If the identifiers are not identical, the changed data is discarded.


