IP Library Granted Patent US 11,089,124
Granted Patent B2
US 11,089,124 · App. 16/039,664 · Granted Aug 10, 2021

Hybrid pull and push based streaming

Inventors: Karthik Sathyanarayana (Cypress, CA); Harkeerat Singh Bedi (Los Angeles, CA); Sergio Leonardo Ruiz (Redondo Beach, CA)
Assignee: Verizon Digital Media Services Inc.
H04L67/26H04L65/60H04L67/10H04L67/2842
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,089,124
App. No.
16/039,664
Granted
Aug 10, 2021
Kind
B2
Abstract

Hybrid pull and push based streaming selectively performs a pull-based distribution of a stream to a first point-of-presence (“PoP”) of a distributed platform having low demand for the stream, and a push-based distribution of the stream to a second PoP of the distributed platform having high demand for the stream. The push-based distribution may be used to prepopulate the second PoP cache with the live stream data as the live stream data is uploaded from an encoder to a source PoP of the distributed platform, and before that live stream data is requested by the second PoP. In doing so, requests for the live stream data received at the second PoP may result in cache hits with the requested live stream data being immediately served from the second PoP cache without having to retrieve the live stream data from outside the second PoP.

Claims (31)

1. A method comprising:

receiving a stream from an encoder at a source point-of-presence (“PoP”) of a distributed platform;

monitoring, at the source PoP, first demand from a first distribution PoP of a plurality of distribution PoPs of the distributed platform, wherein monitoring the first demand comprises determining an initial request from the first distribution PoP for a first segment of the stream and a first number of additional requests from the first distribution PoP for the first segment that arrive prior to the source PoP providing the first segment to the first distribution PoP in response to the initial request for the first segment;

monitoring, at the source PoP, different second demand from a different second distribution PoP of the plurality of distribution PoPs, wherein monitoring the second demand comprises determining an initial request from the second distribution PoP for a second segment of the stream and a second number of additional requests from the second distribution PoP for the second segment that arrive prior to the source PoP providing the second segment to the second distribution PoP in response to the initial request for the second segment; and

performing different pull and push based distributions of the stream from the source PoP to the first distribution PoP and the second distribution PoP during a common time interval based on a difference between the first demand and the second demand, wherein performing the different distributions comprises:

performing a pull-based distribution of the stream to the first distribution PoP based on the first number of additional requests for the first segment from the first distribution PoP that arrive prior to the source PoP providing the first segment to the first distribution PoP being less than a threshold, and wherein performing the pull-based distribution incurs a first amount of delay based on the source PoP providing a particular stream segment to the first distribution PoP in response to a request for the particular stream segment from the first distribution PoP; and

performing a push-based distribution of the stream to the second distribution PoP based on the second number of additional requests for the second segment from the second distribution PoP that arrive prior to the source PoP providing the second segment to the second distribution PoP being greater than the first demand and exceeding the threshold, and wherein performing the push-based distribution incurs a second amount of delay, that is less than the first amount of delay, based on the source PoP forwarding the particular stream segment to the second distribution PoP before the particular stream segment is requested by the second distribution PoP.

2. The method of claim 1 , wherein performing the push-based distribution comprises receiving data for the particular stream segment from the encoder at the source PoP, and redistributing the data as the data is received from the source PoP to the second distribution PoP.

3. The method of claim 1 further comprising pushing data for the particular stream segment and subsequent segments of the stream to the second distribution PoP for a specific amount of time or a specific number of segments.

4. The method of claim 3 further comprising changing from the push-based distribution to the pull-based distribution for the second distribution PoP in response to the second demand becoming less than the threshold after the specific amount of time or the specific number of segments.

5. The method of claim 1 , wherein each PoP of the plurality of distribution PoPs comprises one or more streaming servers redistributing the stream to requesting client devices.

6. The method of claim 1 further comprising redistributing the stream from the second distribution PoP with less delay to requesting client devices than from the first distribution PoP based on the push-based distribution prepopulating a cache of the second distribution PoP with the stream, and the pull-based distribution causing the first distribution PoP to retrieve the stream in response to a request received from a client device.

7. The method of claim 1 further comprising redistributing the particular stream segment from at least the first distribution PoP and the second distribution PoP with the second distribution PoP redistributing the particular stream segment before the first distribution PoP.

8. A device comprising:

one or more processors configured to:

receive a stream from an encoder;

monitor first demand from a first distribution point-of-presence (“PoP”) of a distributed platform, wherein monitoring the first demand comprises determining an initial request from the first distribution PoP for a first segment of the stream and a first number of additional requests from the first distribution PoP for the first segment that arrive prior to providing the first segment to the first distribution PoP in response to the initial request for the first segment;

monitor different second demand from a different second distribution PoP of the distributed platform, wherein monitoring the second demand comprises determining an initial request from the second distribution PoP for a second segment of the stream and a second number of additional requests from the second distribution PoP for the second segment that arrive prior to providing the second segment to the second distribution PoP in response to the initial request for the second segment; and

perform different pull and push based distributions of the stream to the first distribution PoP and the second distribution PoP during a common time interval based on a difference between the first demand and the second demand, wherein performing the different distributions comprises:

perform a pull-based distribution of the stream to the first distribution PoP based on the first number of additional requests for the first segment from the first distribution PoP that arrive prior to providing the first segment to the first distribution PoP being less than a threshold, and wherein performing the pull-based distribution comprises delaying distribution of a stream segment to the first distribution PoP until the first distribution PoP issues a request for the stream segment; and

perform a push-based distribution of the stream to the second distribution PoP based on the second number of additional requests for the second segment from the second distribution PoP that arrive prior to the source PoP providing the second segment to the second distribution PoP being greater than the first demand and exceeding the threshold, and wherein performing the push-based distribution comprises forwarding data for the stream segment to the second distribution PoP prior to receiving a request for the stream segment from the second distribution PoP.

9. A system comprising:

a first distribution point-of-presence (“PoP”);

a second distribution PoP; and

a source PoP configured to:

receive a stream from an encoder;

monitor first demand from the first distribution PoP, wherein monitoring the first demand comprises determining an initial request from the first distribution PoP for a first segment of the stream and a first number of additional requests from the first distribution PoP for the first segment that arrive prior to the source PoP providing the first segment to the first distribution PoP in response to the initial request for the first segment;

monitor different second demand from the second distribution PoP, wherein monitoring the second demand comprises determining an initial request from the second distribution PoP for a second segment of the stream and a second number of additional requests from the second distribution PoP for the second segment that arrive prior to the source PoP providing the second segment to the second distribution PoP in response to the initial request for the second segment; and

perform different pull and push based distributions of the stream to the first distribution PoP and the second distribution PoP during a common time interval based on a difference between the first demand and the second demand, wherein performing the different distributions comprises:

performing a pull-based distribution of the stream to the first distribution PoP based on the first number of additional requests for the first segment from the first distribution PoP that arrive prior to the source PoP providing the first segment to the first distribution PoP being less than a threshold, and wherein performing the pull-based distribution incurs a first amount of delay based on the source PoP providing a particular stream segment to the first distribution PoP in response to a request for the particular stream segment from the first distribution PoP; and

performing a push-based distribution of the stream to the second distribution PoP based on the second number of additional requests for the second segment from the second distribution PoP that arrive prior to the source PoP providing the second segment to the second distribution PoP being greater than the first demand and exceeding the threshold, and wherein performing the push-based distribution incurs a second amount of delay, that is less than the first amount of delay, based on the source PoP forwarding the particular stream segment to the second distribution PoP before the particular stream segment is requested by the second distribution PoP.

Assignments (11)
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0406] Recorded Jul 9, 2025
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
To: UPLYNK, INC. (F/K/A EDGIO, INC.)
Reel/Frame 071875/0105 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0212] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071817/0877 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2025
From: UPLYNK, INC. (F/K/A EDGIO, INC.)
To: LYNROCK LAKE MASTER FUND LP
Reel/Frame 071817/0974 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 068763/0276] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071818/0022 →
PATENT SECURITY AGREEMENT Recorded Aug 23, 2024
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 068763/0276 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 065597/0212 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065597/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: EDGECAST INC.
To: EDGIO, INC.
Reel/Frame 061738/0972 →
CHANGE OF NAME Recorded Mar 15, 2022
From: VERIZON DIGITAL MEDIA SERVICES INC.
To: EDGECAST INC.
Reel/Frame 059367/0990 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2018
From: RUIZ, SERGIO LEONARDO
To: VERIZON DIGITAL MEDIA SERVICES INC.
Reel/Frame 047162/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2018
From: SATHYANARAYANA, KARTHIK; BEDI, HARKEERAT SINGH
To: VERIZON DIGITAL MEDIA SERVICES INC.
Reel/Frame 046400/0174 →