Object Update Distribution in Distributed Networks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed network systems, maintaining up-to-date object caches across multiple client devices is challenging, especially when users access web-based services from various terminals, as updates made on one device may not be promptly reflected on others, leading to stale data and requiring efficient methods to propagate changes across hundreds of millions of users and trillions of objects.
Innovation Solution
A computer-implemented method and system for distributing object update messages in a distributed network, involving receiving object update messages, updating records, and propagating the latest object versions to client devices, ensuring that clients with outdated objects receive the latest versions, even when disconnected, with features like incremental updates and guaranteed delivery to support high scalability and low latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If object caching is used to reduce latency and support disconnected operations, then user experience is improved, but keeping objects cached at different terminals up-to-date becomes challenging
Solution Approach 1:
The system segments the distributed network into multiple terminals (desktop, laptop, tablet, smartphone) each maintaining local object caches. This segmentation allows each terminal to operate independently with low latency while the server coordinates updates across segments to maintain consistency.
Solution Approach 2:
The server acts as an intermediary between multiple terminals, receiving object updates from application servers and propagating them to appropriate client devices. This intermediary mechanism ensures that cached objects across different terminals remain synchronized without requiring direct peer-to-peer communication between terminals.
2Reliability
If updates are propagated across hundreds of millions of users and trillions of objects, then data consistency is maintained, but system complexity increases
Solution Approach 1:
The system introduces a new dimension of object-version-based routing. Instead of propagating updates to all possible terminals, the server uses object identifiers and version information to determine which specific client devices need updates, adding a dimensional filter that reduces complexity.
Solution Approach 2:
The system changes parameters by using object identifiers and version numbers as key routing parameters. When an object update is received, the server uses these parameters to efficiently determine which client devices have cached versions and need updates, avoiding exhaustive searches across all terminals.
3Reliability
If object update messages are sent to all client devices, then data consistency is ensured, but network traffic and processing overhead increase
Solution Approach 1:
The system applies local quality by sending updates only to specific client devices that have cached the particular object being updated. Each client device receives updates tailored to its local cache state, rather than all devices receiving all updates, reducing unnecessary network traffic.
Solution Approach 2:
The system uses partial action by propagating updates only to the subset of client devices that need them, determined by matching object identifiers and version information. This avoids the excessive action of sending updates to all possible client devices in the system.
Data Source
AI summary
A distributed network system includes at least one server having memory and one or more processors. The server performs the following operations in connection with propagating object updates to respective client devices: receiving a first object update message from an application server, the first object update message including a first object identifier and a first object version; updating an object update record that includes the first object identifier using the first object version, wherein the object update record includes a first client identifier; propagating the first object version from the object update record to a client-object registration record that includes the first client identifier; and sending a second object update message to a first client device associated with the first client identifier, wherein the second object update message includes the first object identifier and the first object version.


