IP Library Granted Patent US 11,228,626
Granted Patent B1
US 11,228,626 · App. 16/564,246 · Granted Jan 18, 2022

Request stream

Inventor: Jeffrey Michael Barber (Bainbridge Island, WA)
Assignee: Facebook, Inc.
H04L65/1086H04L65/4076H04L65/602H04L65/605H04L65/607
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 11,228,626
App. No.
16/564,246
Granted
Jan 18, 2022
Kind
B1
Abstract

The disclosed computer-implemented method may include receiving, at a server, a request from a client for live data. The method may include establishing, at the server, a data transfer promise that is embedded in a live data stream. The live data stream may include the requested live data. The method may further include transferring the live data stream with the embedded data transfer promise to the client, receiving an indication that the status of the embedded data transfer promise was changed during transmission of the live data stream and providing, to the client, an indication of the current status of the live stream based on the received status indication. Various other methods, systems, and computer-readable media are also disclosed.

Claims (40)

1. A computer-implemented method comprising:

receiving, at a server, a request from a client for one or more portions of live data;

establishing, at the server, a data transfer promise that is embedded in a live data stream, the live data stream including the requested live data;

transferring the live data stream with the embedded data transfer promise to the client through one or more intermediary nodes, the embedded data transfer promise allowing the live data stream to be restarted from any of the one or more intermediary nodes;

receiving an indication that a current status of the embedded data transfer promise was changed during transmission of the live data stream; and

providing, to the client, an indication of the current status of the live stream based on the received status indication, the received status indication including a specified acknowledgement level that indicates the level to which the live data stream was acknowledged.

2. The computer-implemented method of claim 1 , wherein the indication indicating that status of the embedded data transfer promise was changed during transmission of the live data stream indicates that the embedded data transfer promise was broken.

3. The computer-implemented method of claim 2 , wherein the indication further identifies which network node the embedded data transfer promise was broken at.

4. The computer-implemented method of claim 3 , wherein the indication further indicates that the live data stream was restarted at the identified network node.

5. The computer-implemented method of claim 4 , wherein the indication further indicates that the embedded data transfer promise is now intact.

6. The computer-implemented method of claim 5 , wherein the server updates the indication of the current status of the live stream based on the further indication that the embedded data transfer promise is now intact.

7. The computer-implemented method of claim 1 , further comprising generating, at the server and as part of the embedded data transfer promise, one or more portions of delta data, the delta data including a flow status indicator.

8. The computer-implemented method of claim 7 , wherein the flow status indicator is configured to indicate to the client that the server has promised to transfer the requested live data.

9. The computer-implemented method of claim 8 , wherein the server transfers the requested live data including the delta data to the client.

10. The computer-implemented method of claim 1 , further comprising monitoring the live data stream to determine whether the embedded data transfer promise is subsequently broken at one or more network nodes between the server and the client over at least a portion of the duration of the live data stream.

11. The computer-implemented method of claim 10 , further comprising generating a measure of reliability for the live data stream, the measure of reliability indicating a number of times the embedded data transfer promise associated with the live data stream was broken during the monitoring.

12. A system comprising:

at least one physical processor; and

physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to:

receive, at a server, a request from a client for one or more portions of live data;

establish, at the server, a data transfer promise that is embedded in a live data stream, the live data stream including the requested live data;

transfer the live data stream with the embedded data transfer promise to the client through one or more intermediary nodes, the embedded data transfer promise allowing the live data stream to be restarted from any of the one or more intermediary nodes;

receive an indication that a current status of the embedded data transfer promise was changed during transmission of the live data stream; and

provide, to the client, an indication of the current status of the live stream based on the received status indication, the received status indication including a specified acknowledgement level that indicates the level to which the live data stream was acknowledged.

13. The system of claim 12 , wherein the request from the client automatically establishes a stream of deltas flowing from the server to the client.

14. The system of claim 12 , wherein each node between the server and the client knows whether the embedded data transfer promise was broken at that node.

15. The system of claim 12 , wherein at least one proxy server lies in a data transfer path between the server and the client.

16. The system of claim 15 , further comprising:

determining that the proxy server has become disconnected from the server;

breaking the embedded data transfer promise at the proxy server; and

notifying the server to retry transferring the live data stream.

17. The system of claim 12 , wherein the indication of the current status of the live stream comprises a graphical indicator.

18. The system of claim 12 , wherein the live data comprises live comments on a video stream.

19. The system of claim 12 , wherein the embedded data transfer promise is implemented as part of a protocol.

20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive, at a server, a request from a client for one or more portions of live data;

establish, at the server, a data transfer promise that is embedded in a live data stream, the live data stream including the requested live data;

transfer the live data stream with the embedded data transfer promise to the client through one or more intermediary nodes, the embedded data transfer promise allowing the live data stream to be restarted from any of the one or more intermediary nodes;

receive an indication that a current status of the embedded data transfer promise was changed during transmission of the live data stream; and

provide, to the client, an indication of the current status of the live stream based on the received status indication, the received status indication including a specified acknowledgement level that indicates the level to which the live data stream was acknowledged.

Assignments (3)
CHANGE OF NAME Recorded Dec 23, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058569/0422 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME ON THE COVER SHEET PREVIOUSLY RECORDED AT REEL: 050347 FRAME: 0637. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 13, 2021
From: BARBER, JEFFREY MICHAEL
To: FACEBOOK, INC.
Reel/Frame 057584/0748 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2019
From: BARBER, JEFFREY MICHAEL
To: FACEBOOK, INC.,
Reel/Frame 050347/0637 →