IP Library Granted Patent US 10,158,891
Granted Patent B1
US 10,158,891 · App. 15/614,067 · Granted Dec 18, 2018

Prefetcher with adaptive stream segment prefetch window based on client associated thresholds

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,158,891
App. No.
15/614,067
Granted
Dec 18, 2018
Kind
B1
Abstract

An adaptive stream segment prefetcher changes the number of segments it prefetches following a client requested segment of the same stream based on conditions associated with that stream at prefetch time. The adaptive prefetcher increases or decreases the number of segments to prefetch for a particular stream based on the number of active or concurrent clients requesting that particular stream, based on the playback duration of the particular stream by one or more clients, or some combination of both. The adaptive prefetcher continuously monitors the conditions associated with the stream such that number of segments prefetched at a first time are greater or less than the number of segments prefetched at a later second time.

Claims (34)

1. A method for adaptive prefetching of a stream, the method comprising:

receiving a request directed to a particular segment of a particular stream from a client, the particular stream encoded as a plurality of segments;

detecting a number of clients concurrently requesting said particular stream;

prefetching a first set of segments immediately following said particular segment in the particular stream in response to the number of clients exceeding a first threshold and not a second threshold, wherein said prefetching the first set of segments comprises retrieving each segment of the first set of segments from remote storage before receiving a client request for a segment within the first set of segments; and

prefetching a second set of segments immediately following said particular segment in the particular stream in response to the number of clients exceeding said first threshold and said second threshold, wherein said prefetching the second set of segments comprises retrieving each segment of the second set of segments from remote storage before receiving a client request for a segment within the second set of segments, and wherein said second set of segments comprises said first set of segments and at least one additional segment of the particular stream not in the first set of segments.

2. The method of claim 1 , wherein prefetching the first set of segments comprises caching in memory, segments retrieved from the remote storage in response to said prefetching the first set of segments.

3. The method of claim 2 further comprising receiving after said prefetching the first set of segments, a second request directed to a prefetched segment in the first set of segments.

4. The method of claim 3 further comprising responding to said second request by serving said prefetched segment from memory without initiating a retrieval of said prefetched segment from the remote storage in response to said receiving the second request.

5. The method of claim 1 further comprising tracking playback duration of the particular stream by the clients concurrently requesting said particular stream.

6. The method of claim 5 further comprising increasing a number of segments included in the first set of segments prior to said prefetching of the first set of segments in response to the playback duration from said tracking exceeding a threshold amount.

7. The method of claim 6 further comprising decreasing a number of segments included in the first set of segments prior to said prefetching of the first set of segments in response to the playback duration from said tracking not exceeding the threshold amount.

8. A method for adaptive prefetching of a stream, the method comprising:

receiving a request directed to a particular segment of a particular stream from a client;

tracking playback duration of the particular stream by a set of clients requesting said particular stream;

prefetching a first set of segments immediately following said particular segment in the particular stream in response to the playback duration by the set of clients exceeding a first threshold and not a second threshold, wherein said prefetching the first set of segments comprises retrieving each segment of the first set of segments from remote storage before receiving a client request for a segment within the first set of segments; and

prefetching a second set of segments immediately following said particular segment in the particular stream in response to the playback duration by the set of clients exceeding said first threshold and said second threshold, wherein said prefetching the second set of segments comprises retrieving each segment of the second set of segments from remote storage before receiving a client request for a segment within the second set of segments, and wherein said second set of segments comprises said first set of segments and at least one additional segment of the particular stream not in the first set of segments.

9. The method of claim 8 , wherein tracking the playback duration comprises monitoring an amount of time each client from the set of clients views the particular stream.

10. The method of claim 8 , wherein tracking the playback duration comprises tracking a number of segments of the particular stream requested by each client of the set of clients.

11. The method of claim 8 further comprising detecting a number of clients in the set of clients requesting said particular stream.

12. The method of claim 11 , wherein prefetching the first set of segments further comprises configuring a number of segments to prefetch as part of the first set of segments based on the playback duration exceeding the first threshold and said number of clients.

13. The method of claim 8 further comprising retrieving the particular segment from the remote storage and serving the particular segment in response to receiving said request.

14. The method of claim 13 further comprising caching in local memory, the particular segment and the first set of segments in response to receiving said request directed to the particular segment and said prefetching of the first set of segments.

15. The method of claim 14 further comprising responding to a subsequent request for a first segment from the first set of segments by retrieving and sending the first segment from said local memory without further retrieving or accessing of the remote storage.

16. A method comprising:

receiving a first request directed to a first segment of a particular stream, the particular stream encoded as a plurality of segments;

monitoring initial conditions associated with a set of clients streaming the particular stream at a time of receiving said first request;

prefetching in response to said receiving the first request, a first set of segments comprising a first number of segments set according to said initial conditions, wherein the first set of segments immediately follow said first segment in the particular stream;

receiving a second request directed to a second segment of the particular stream immediately following the first set of segments;

monitoring changed conditions associated with the set of clients streaming the particular stream at a time of receiving said second request, wherein said changed conditions differ from said initial conditions; and

prefetching in response to said receiving the second request, a second set of segments comprising a different second number of segments set according to said changed conditions, wherein the second set of segments immediately follow said second segment in the particular stream.

17. The method of claim 16 , wherein said changed conditions differ from said initial conditions by at least one client joining or leaving said set of clients from the time of receiving said first request to the time of receiving said second request.

18. The method of claim 17 , wherein prefetching the second set of segments further comprises increasing a number of segments to prefetch from the first number of segments to the second number of segments as a result of the set of clients increasing in number from monitoring said initial conditions to monitoring said changed conditions.

19. The method of claim 16 , wherein said changed conditions differ from said initial condition by at least one of an increase or decrease in average playback duration of the particular stream by the set of clients from the time of receiving said first request to the time of receiving said second request.

20. The method of claim 19 , wherein prefetching the second set of segments further comprises decreasing a number of segments to prefetch from the first number of segments to the second number of segments as a result of the average playback duration declining from monitoring said initial conditions to monitoring said changed conditions.

Assignments (10)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2025
From: EDGIO, INC.
To: DRNC HOLDINGS, INC.
Reel/Frame 070071/0327 →
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 Jun 5, 2017
From: PATIL, RAVIKIRAN
To: VERIZON DIGITAL MEDIA SERVICES INC.
Reel/Frame 042601/0671 →