Real-Time Location Sharing Graph Framework for Low-Traffic Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing messaging applications consume significant network resources and degrade performance by frequently polling or pushing friend locations, leading to inaccurate and inefficient location updates.
Innovation Solution
A distributed storage system with real-time graph instances and front-end instances minimizes network traffic by intelligently updating and propagating location information to device objects of friends, reducing the need for frequent polling and pushing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If frequent polling or pushing of friend locations is implemented, then location information can be updated, but network resources are consumed significantly and performance degrades
Solution Approach 1:
The system allows client devices to autonomously determine whether to request location updates based on their own needs and the friend's sharing preferences, eliminating the need for centralized frequent polling. Each client device independently manages its location update requests, reducing overall network traffic while maintaining accurate location information when needed.
2Speed
If location information is pushed frequently to all friends, then real-time location sharing is achieved, but network bandwidth is wasted when locations do not change
Solution Approach 1:
The system implements partial action by only pushing location updates when actual changes occur, rather than sending updates on every scheduled interval. The server compares new location data with previous locations and only transmits updates when the location has actually changed, eliminating redundant network traffic while maintaining real-time accuracy.
Solution Approach 2:
The system dynamically adjusts the location update parameter based on whether the location has changed. Instead of using a fixed update frequency, the system changes the update behavior conditionally - pushing updates only when location parameters actually differ from the previous state, thereby optimizing network bandwidth usage.
3Measurement precision
If polling is used to retrieve friend locations, then location information can be obtained, but system resources are wasted when locations have not changed
Solution Approach 1:
The system performs partial polling by selectively requesting location updates only when necessary. Client devices determine based on their own state and needs whether to request updates, and the server only processes and returns updates when location data has actually changed, reducing wasted system resources while maintaining accurate location information.
4Speed
If location updates are pushed to all friends continuously, then real-time sharing is maintained, but unnecessary resource consumption occurs
Solution Approach 1:
The system applies local quality by allowing each client device to independently control its location update requests based on its specific needs and the friend's sharing preferences. Instead of a uniform push to all friends, each client device locally determines whether to request updates, creating a customized update pattern that reduces overall resource consumption while maintaining real-time sharing where needed.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Aspects of the present disclosure involve a system and a method for performing operations comprising: storing, on a distributed storage system, a front-end (FE) instance and a plurality of real-time graph (RTG) instances, each of the plurality of RTG instances includes a plurality of device objects, the FE instance being configured to communicate with a client device associated with a first user; establishing a bi-directional streaming remote procedure call (RPC) connection between the FE instance and the plurality of RTG instances; receiving, by the FE instance, a status update from the client device; determining, by the FE instance, that a first device object corresponding to the client device is stored on a first RTG instance of the plurality of RTG instances; and transmitting a first message comprising the status update from the FE instance to the first RTG instance to update the first device object.