Client Buffer Throttling for Co-Editing Cursor Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Co-editing environments consume large network bandwidth due to frequent broadcasts of cursor positions, which can slow down other functions and waste processor time, especially in multi-client interactive sessions.
Innovation Solution
Implementing a buffer on client devices to store and throttle cursor coordinates, transmitting them in bundled packets only after a predetermined time period or significant movement, reducing unnecessary data transmission and optimizing network usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If cursor positions are frequently broadcast to each client device, then the accuracy and responsiveness of remote cursor representation is improved, but network bandwidth consumption increases significantly
Solution Approach 1:
The patent implements periodic transmission of cursor coordinates by storing them in a buffer and transmitting bundled packets at predetermined time intervals (e.g., every 500 milliseconds) or when significant movement occurs. This periodic action reduces network bandwidth consumption by up to 90-95% compared to continuous broadcasting, while still maintaining acceptable cursor representation accuracy through the use of buffers and interpolation techniques.
Solution Approach 2:
The patent merges multiple cursor coordinate data points into bundled packets that are transmitted together in single network communications. By combining multiple individual cursor position updates into aggregated bundles, the system reduces the total number of network transmissions required, thereby significantly decreasing network bandwidth consumption while preserving the essential cursor movement information.
2Speed
If cursor coordinates are transmitted continuously, then the responsiveness of remote cursor display is improved, but processor time is wasted on unnecessary data transmission
Solution Approach 1:
The system uses periodic transmission triggered by time thresholds (e.g., 500ms intervals) or significant movement detection, rather than continuous transmission. This approach eliminates unnecessary processor operations for transmitting redundant cursor data while maintaining responsive cursor display through strategic timing of transmissions and buffer management.
Solution Approach 2:
The patent implements preliminary buffering of cursor coordinates before transmission. By pre-storing cursor data in buffers and preparing bundled packets in advance, the system reduces the frequency of transmission operations and allows processor to focus on more critical tasks during intervals between transmissions, thereby reducing wasted processor time.
3Measurement precision
If multiple cursor positions are transmitted every second, then the accuracy of remote cursor representation is improved, but network bandwidth is consumed at rates of 35-70 kilobytes/second
Solution Approach 1:
The patent combines multiple individual cursor coordinate transmissions into single bundled packets containing multiple cursor positions. This merging approach reduces data transmission volume by aggregating what would otherwise be numerous separate network communications into fewer, more efficient bundled transmissions, achieving up to 90-95% reduction in network bandwidth consumption.
Solution Approach 2:
The system transmits bundled cursor position data at periodic intervals (e.g., every 500 milliseconds) rather than continuously every second. This periodic transmission strategy, combined with buffering, significantly reduces the quantity of data transmitted over the network while maintaining sufficient accuracy for remote cursor representation.
Data Source
AI summary
Techniques for reducing network bandwidth for remote content display include storing, in a buffer, by a first client device of a plurality of client devices participating in a co-editing session, a plurality of cursor coordinates of a cursor displayed on a display of the first client device. The plurality of cursor coordinates are stored in the buffer during a throttle time period. Responsive to a determination that the throttle time period has elapsed, the first client device obtains from the buffer and transmits the plurality of cursor coordinates in a data packet. Receipt of the plurality of cursor coordinates enables a representation of the cursor to be displayed on displays of each of the plurality of client devices other than the first client device based at least in part on the plurality of cursor coordinates.


