IP Library Granted Patent US 10,601,914
Granted Patent B2
US 10,601,914 · App. 15/948,937 · Granted Mar 24, 2020

Method and apparatus for synchronizing applications' consumption of remote data

Inventors: Stefan Birrer (Chicago, IL); Fabián Bustamante (Evanston, IL); Andrew Joseph Weiner (Chicago, IL)
Assignee: PHENIX REAL TIME SOLUTIONS, INC.
H04L67/1095H04L65/4076H04L65/607H04L65/80H04N5/04H04N21/242H04N21/4305H04N21/8547
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,601,914
App. No.
15/948,937
Granted
Mar 24, 2020
Kind
B2
Abstract

Presented here are methods and systems for enabling multiple consumers to view an ordered data stream at the same time. An embodiment of the invention follows a client-server model, in which there is one server that is the source of the data and multiple clients that are the consumers of the data. Additionally, this invention can also be embodied by a number of other models, including but not limited to: 1) multiple servers or server clusters acting as data sources, and multiple clients acting as consumers, 2) pure peer-to-peer, where each peer can be both a source and/or a consumer of data, 3) a server-assisted peer-to-peer model, where peers may be both a source and/or a consumer of data and a set of one or more servers act as source and back-up and provide meta-information about the peers, such as which data is available from which peer.

Claims (20)

1. A method comprising:

defining a group clock measuring a group time indicating when a data chunk in an ordered data stream should be consumed by a plurality of consumers;

synchronizing the group clock with a plurality of local clocks associated with the plurality of consumers requesting to consume the ordered data stream, said synchronizing comprising sending a plurality of group times to the plurality of consumers;

sending the group time associated with the data chunk and the data chunk to the plurality of consumers;

receiving from a consumer in the plurality of consumers an arrival time of the data chunk;

based on the arrival time of the data chunk and the group time associated with the data chunk, determining whether the consumer has received a substantial percentage of data chunks late; and

upon determining that the consumer has received the substantial percentage of data chunks late, ensuring that the plurality of consumers synchronously consume the ordered data stream by adjusting a quality of the data chunk or a latency of the ordered data stream.

2. The method of claim 1 , comprising:

obtaining a setting specifying a minimum quality threshold associated with the data chunk sent to the consumer in the plurality of consumers;

determining whether reducing the quality of the data chunk to the minimum quality threshold prevents the substantial percentage of data chunks to be received late by the consumer; and

upon determining that reducing the quality of the data chunk to the minimum quality threshold prevents the substantial percentage of data chunks to be received late, reducing the quality of the data chunk to at most the minimum quality threshold, and sending the data chunk to the consumer that has received the substantial percentage of data chunks late.

3. The method of claim 1 , comprising:

upon determining that the consumer has received the substantial percentage of data chunks late, reducing the quality of the data chunk sent to the consumer until the substantial percentage of data chunks are not received late.

4. The method of claim 1 , comprising:

obtaining a setting specifying a minimum quality threshold associated with the data chunk sent to the consumer in the plurality of consumers;

determining whether reducing the quality of the data chunk to the minimum quality threshold prevents the substantial percentage of data chunks to be received late by the consumer; and

upon determining that reducing the quality of the data chunk to the minimum quality threshold does not prevent the substantial percentage of data chunks to be received late, increasing the group time associated with the data chunk and sent to the plurality of consumers to a later time corresponding to the arrival time of the data chunk at the consumer receiving the substantial percentage of data chunks late, thereby ensuring synchronization of consumption between the plurality of consumers.

5. The method of claim 1 , comprising:

receiving a request from a new consumer to join the plurality of consumers while the plurality of consumers are consuming the ordered data stream; and

sending to the new consumer a second data chunk and a second group time associated with the second data chunk, wherein the second group time is later than the group time currently being sent to the plurality of consumers.

Assignments (6)
SECURITY INTEREST Recorded Apr 14, 2026
From: STATS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 075390/0491 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2025
From: PHENIX REAL TIME SOLUTIONS, INC.
To: KB PARTNERS, LLC
Reel/Frame 072432/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2025
From: KB PARTNERS, LLC
To: STATS LLC
Reel/Frame 072432/0642 →
RELEASE OF SECURITY INTEREST Recorded Sep 8, 2025
From: KB PARTNERS, LLC
To: STATS, LLC
Reel/Frame 072184/0541 →
SECURITY INTEREST Recorded May 21, 2025
From: PHENIX REAL TIME SOLUTIONS, INC.
To: KB PARTNERS, LLC
Reel/Frame 071182/0630 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2019
From: BIRRER, STEFAN; BUSTAMANTE, FABIÁN; WEINER, ANDREW JOSEPH
To: PHENIX REAL TIME SOLUTIONS, INC.
Reel/Frame 049095/0087 →
Continuity (2)
Provisional Application 62489264 · Apr 24, 2017
Related Publication 20180309827A1 · Oct 25, 2018
Cited By (4)
US 12,256,119 US 12,273,601 US 12,389,080 US 12,598,241