Delta Query Technique Using Global Counter for Data Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage systems face inefficiencies in data transfer between clients and servers, leading to excessive network utilization and scalability bottlenecks, as they often transmit entire data sets instead of incremental changes, especially when clients reconnect after a long pause, requiring synchronization of the entire information.
Innovation Solution
Implementing a delta query technique that uses a global counter to track changes in objects, where clients receive only the latest changes since their last access, with each client maintaining a local counter that is updated upon receiving the latest data, allowing the server to transmit only necessary data and reducing resource consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the server transmits the entire data set to clients periodically, then clients have up-to-date information, but network utilization becomes excessive and resource consumption increases
Solution Approach 1:
The patent extracts only the changed portions of data (delta data) from the complete data set and transmits them to clients. Instead of sending entire objects, the server identifies and transmits only the specific properties that have changed, significantly reducing network bandwidth consumption while maintaining data currency.
Solution Approach 2:
The patent segments the data transmission process into two parts: (1) initial complete data set transmission, and (2) subsequent incremental delta data transmissions. This segmentation allows the system to optimize for both initial synchronization and ongoing updates, reducing overall network resource consumption.
2Productivity
If the server maintains queues of information changes for each client, then delta data can be transmitted efficiently, but device complexity increases and queues may grow in size
Solution Approach 1:
The patent merges the change tracking mechanism into the object storage structure itself by adding a version number property to each object. This eliminates the need for separate complex queue structures, as the version information is inherently embedded in the data model, simplifying server memory management.
Solution Approach 2:
The patent uses version number copies embedded in each object to track changes. Instead of maintaining complex queues, the system relies on simple version number comparisons between server and client, dramatically reducing device complexity while maintaining efficient delta data transmission.
3Reliability
If the client queries the server frequently for updates, then data currency is maintained, but network utilization becomes excessive
Solution Approach 1:
The patent applies partial action by transmitting only the necessary portion of data (delta changes) rather than complete data sets. Clients receive exactly what they need to stay synchronized without the overhead of redundant data transmissions, optimizing the balance between data currency and network traffic.
4Loss of energy
If the server performs GUI operation processing, then network utilization is efficient, but server scalability is bottlenecked
Solution Approach 1:
The patent extracts the GUI operation processing logic from the server and relocates it to the client side. The server focuses solely on maintaining data and transmitting deltas, while clients independently handle filtering, navigation, and display operations, thereby improving server scalability without increasing network utilization.
Data Source
AI summary
A delta query technique transmits only latest changes to data of objects from a server to one or more clients in response to a client query (request) to access the object data. A global counter is maintained for all of the objects served by the server. Every time the data of an object changes, a value of the global counter increments (updates) and the updated global counter value is then assumed (“inherited”) by that object. In addition, the global counter is updated when a client issues a request to access one or more objects. If the data of the objects has changed since the last time the client accessed the objects, the server responds with the latest object data and the updated global counter value. Notably, each client maintains a local counter having a value that, upon receipt of the latest object data, is modified to reflect the updated global counter value.


