Prefetcher with adaptive stream segment prefetch window based on different demand at different times
AssigneeVerizon Digital Media Services Inc.
InventorRavikiran Patil
Life of this patent
Estimating the term…
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.
Claims20
A device comprising:
- a non-transitory computer-readable medium storing a set of processor-executable instructions;
- and
- one or more processors configured to execute the set of processor-executable instructions, wherein executing the set of processor-executable instructions causes the one or more processors to:
- receive, at a first time, a request, that is directed to a first segment of a particular stream from a client, wherein the particular stream is encoded as a plurality of segments;
- determine demand for the particular stream at the first time exceeds a first threshold and not a second threshold;
- prefetch a first set of segments immediately following the first segment in the particular stream in response to the demand exceeding the first threshold and not the second threshold, wherein prefetching the first set of segments comprises initiating retrieval of the first set of segments from remote storage before receiving a client request for a segment within the first set of segments;
- receive, at a second time, a request directed to a second segment of the particular stream that is after the first set of segments;
- determine demand for the particular stream at the second time exceeds the first threshold and the second threshold;
- and
- prefetch a second set of segments immediately following the second segment in the particular stream in response to the demand at the second time exceeding the first threshold and the second threshold, wherein the second set of segments comprises at least one more segment than the first set of segments.
A device comprising:
- a non-transitory computer-readable medium storing a set of processor-executable instructions;
- and
- one or more processors configured to execute the set of processor-executable instructions, wherein executing the set of processor-executable instructions causes the one or more processors to:
- receive a request, that is directed to a particular segment of a particular stream from a client, wherein the particular stream is encoded as a plurality of segments;
- determine demand for the particular stream based on prior requests for the particular stream from other clients;
- and
- prefetch a set of segments immediately following the particular segment in the particular stream in response to the demand exceeding a threshold, wherein prefetching the set of segments comprises initiating retrieval of the set of segments from remote storage before receiving a client request for a segment within the first set of segments.
A device comprising:
- a non-transitory computer-readable medium storing a set of processor-executable instructions;
- and
- one or more processors configured to execute the set of processor-executable instructions, wherein executing the set of processor-executable instructions causes the one or more processors to:
- receive a first set of conditions from a first slave device serving segments of a particular stream to a first set of clients;
- receive a second set of conditions from a second slave device serving segments of the particular stream to a different second set of clients;
- derive distributed demand for the particular stream based on the first set of conditions received from the first slave device and the second set of conditions received from the second slave device;
- configure a first prefetch window for the particular stream in response to the distributed demand exceeding a first threshold and not a second threshold;
- and
- configure a second prefetch window for the particular stream in response to the distributed demand exceeding the first threshold and the second threshold, and wherein configuring the first prefetch window or the second prefetch window adjusts a number of segments of the particular stream that each of the first slave device and the second slave device prefetch after receiving a first request for a segment of the particular stream.
Dependencies are inferred from the claim text.