Distributed Node Data Synchronization via Snapshot Comparison
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed computer systems face challenges in synchronizing data between nodes in a cluster, particularly in nonhierarchical systems, where nodes are loosely coupled and frequently disconnect or reconnect, leading to issues with fault resilience and high data update frequencies.
Innovation Solution
A method where each node generates and compares snapshots of data items with timestamps to determine synchronization state, allowing for flexible and resilient data synchronization by identifying changes up to a specific timestamp, ensuring all nodes have a consistent reference point and reducing the impact of communication delays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a hierarchical client-server configuration is used for data synchronization, then data consistency can be maintained through centralized control, but the system becomes vulnerable to communication faults and less flexible when nodes frequently disconnect or reconnect
Solution Approach 1:
The patent divides the centralized synchronization authority into multiple distributed nodes, where each node independently maintains and validates data. Instead of one master node controlling all changes, every node can act as a potential master, segmenting the synchronization function across the network. This eliminates the single point of failure in hierarchical systems while maintaining data consistency through distributed validation.
Solution Approach 2:
The patent inverts the traditional client-server model by making all nodes equal peers with equal authority. Rather than having clients request permission from a central server to make changes, any node can initiate and commit data changes independently. The synchronization is achieved not through top-down control but through bottom-up consensus where nodes validate each other's changes, reversing the control flow of traditional hierarchical systems.
2Reliability
If a master node is selected to control change acceptance in a cluster, then data consistency can be enforced, but the system becomes less flexible and more vulnerable to communication path faults
Solution Approach 1:
The patent implements dynamic role assignment where the master node identity is not fixed but changes based on current system state and node availability. Any node can become the master temporarily to handle synchronization, and roles are dynamically transferred as nodes join or leave the cluster. This dynamic adaptation allows the system to maintain functionality regardless of which specific nodes are active, providing both fault tolerance and connection flexibility.
Solution Approach 2:
Each node in the cluster autonomously performs synchronization validation and conflict resolution without requiring constant master node intervention. Nodes independently track their own data state, validate incoming changes against their local state, and can autonomously reject or accept changes based on predefined consistency rules. This self-service capability reduces dependency on the master node and maintains operational flexibility during master node failures or communication disruptions.
3Reliability
If snapshots of all data items are exchanged between nodes, then complete synchronization can be achieved, but bandwidth usage increases significantly with high data update frequencies
Solution Approach 1:
The patent extracts only the essential synchronization information from complete data snapshots by identifying and transmitting only the specific data items that have changed since the last synchronization point. Instead of exchanging entire data sets, nodes exchange minimal change notifications containing only modified item identifiers and their new values. This extraction approach maintains synchronization completeness while dramatically reducing the volume of data transmitted over the network.
Solution Approach 2:
The patent applies partial synchronization by selectively updating only the subset of data items that require synchronization rather than performing complete snapshot exchanges. Nodes identify which specific data items have changed and perform partial updates only for those items, avoiding the excessive action of transmitting and processing complete data sets. This partial action approach achieves sufficient synchronization for operational needs while minimizing network bandwidth consumption.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present disclosure relates to a method in a distributed and nonhierarchical node for synchronizing a set of data items between said node and one or more distributed and nonhierarchical nodes communicatively coupled to form a cluster, wherein the set of data items are locally replicated at each node. The method comprises: receiving information regarding missing or changed data items from other nodes in the cluster; determining that said node is not synchronized with the other nodes in the cluster; and synchronizing the node with the other nodes in the cluster, wherein the information regarding missing or changed data items is used to maintain a simulated synchronized state in the node during the synchronization process.