# US 8,788,656 B2 · System and method for video caching based on available resources

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,656 B2
- Document ID: US8788656B2
- Status: Granted
- Kind: B2
- Application number: 13/296,032
- Filed: 2011-11-14
- Published: 2013-05-16
- Granted: 2014-07-22
- Earliest claimed: 2011-11-14
- Assignees: Cisco Technology, Inc.
- Applicants: Charles Moreman; Allen G. Ivester; Rusli Tjong
- Inventors: Charles Moreman; Allen G. Ivester; Rusli Tjong
- Web page: https://patentgrep.com/patent/US8788656B2

## CPC

- H04L 65/612: for unicast
- H04L 65/765: {intermediate}
- H04L 65/80: Responding to QoS
- H04N 21/2225: Local VOD servers
- H04N 21/23103: {using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers (storage management G06F3/0604; allocation of resources considering the load in multiprogramming arrangements G06F9/505; techniques for rebalancing the load in a distributed system G06F9/5083; access to distributed or replicated servers, e.g. load balancing, in data networks H04L67/1001)}
- H04N 21/23106: {involving caching operations (prefetching while addressing of a memory level in which the access to the desired data or data block requires associative addressing means within memory systems or architectures G06F12/0862; caching at an intermediate stage in a data network H04L67/568)}
- H04N 21/2396: {characterized by admission policies (admission control, resource allocation in open networks H04L12/5692; arrangements for network security using user profiles for access control H04L63/102; access security in wireless networks H04W12/08)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method is provided in one example and includes receiving a data stream; determining a prediction of the amount of resources used to cache the data stream at a network element; identifying current resources being consumed by the network element; and determining whether to cache the data stream based on a sum of the current resources being consumed and the prediction of the amount of resources used to cache the data stream at the network element.

## Claims

### Claim 1

A method, comprising:
receiving a data object request;
receiving a data stream;
routing the data stream to a routing engine if the data stream is not being received in response to the data object request; and
if the data stream is being received in response to the data object request:
determining a predicted amount of resources used to cache the data stream at a network element, wherein the predicted amount of resources is derived from a dynamic module of resource usage per-data stream based, at least in part, on the type of data in the data stream;
identifying current resources being consumed by the network element; and
determining whether to cache the data stream based on a sum of the current resources being consumed and the predicted amount of resources used to cache the data stream at the network element.

### Claim 2 (depends on 1)

The method of claim 1, wherein the predicted amount of resources used to cache the data stream is derived from a static model of resource usage of caching per-data stream when the dynamic module does not include resource usage per-data stream based, at least in part, on the type of data in the data stream.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining the predicted amount of resources used to cache the data stream based on a historical pattern of the amount of resources used to cache at least one data stream.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining characteristics of the data stream; and
determining the predicted amount of resources used to cache the data stream based on a historical pattern of the amount of resources used to cache at least one data stream with similar characteristics.

### Claim 5 (depends on 1)

The method of claim 1, wherein if the sum of the current resources being consumed and the prediction of the amount of resources used to cache the data stream is above a threshold, the method further comprises:
preventing the data stream from being cached.

### Claim 6 (depends on 1)

The method of claim 1, wherein if the sum of the current resources being consumed and the prediction of the amount of resources used to cache the data stream is above a threshold, the method further comprises:
determining whether to pass the data stream through the network element without caching the data stream.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
dropping the data stream if the sum of the current resources being consumed and a prediction of the amount of resources used to pass the data stream without caching is above a threshold.

### Claim 8 (depends on 7)

The method of claim 7, wherein the predicted amount of resources used to pass the data stream without caching is derived from a static model of resource usage of passing without caching per-data stream.

### Claim 9

Logic encoded in one or more non-transitory media that includes code for execution and when executed by a processor is operable to perform operations, comprising:
receiving a data object request;
receiving a data stream;
routing the data stream to a routing engine if the data stream is not being received in response to the data object request; and
if the data stream is being received in response to the data object request:
determining a predicted amount of resources used to cache the data stream at a network element, wherein the predicted amount of resources is derived from a dynamic module of resource usage per-data stream based, at least in part, on the type of data in the data stream;
identifying current resources being consumed by the network element; and
determining whether to cache the data stream based on a sum of the current resources being consumed and the predicted amount of resources used to cache the data stream at the network element.

### Claim 10 (depends on 9)

The logic of claim 9, wherein the predicted amount of resources used to cache the data stream is derived from a static model of resource usage of caching per-data stream when the dynamic module does not include resource usage per-data stream based, at least in part, on the type of data in the data stream.

### Claim 11 (depends on 9)

The logic of claim 9, further comprising:
determining the predicted amount of resources used to cache the data stream based on a historical pattern of the amount of resources used to cache at least one data stream.

### Claim 12 (depends on 9)

The logic of claim 9, the operations further comprising:
determining characteristics of the data stream; and
determining the predicted amount of resources used to cache the data stream based on a historical pattern of the amount of resources used to cache at least one data stream with similar characteristics.

### Claim 13 (depends on 9)

The logic of claim 9, wherein if the sum of the current resources being consumed and the prediction of the amount of resources used to cache the data stream is above a threshold, the method further comprises:
preventing the data stream from being cached.

### Claim 14 (depends on 9)

The logic of claim 9, wherein if the sum of the current resources being consumed and the prediction of the amount of resources used to cache the data stream is above a threshold, the method further comprises:
determining whether to pass the data stream through the network element without caching the data stream.

### Claim 15 (depends on 14)

The logic of claim 14, the operations further comprising:
dropping the data stream if the sum of the current resources being consumed and a prediction of the amount of resources used to pass the data stream without caching is above a threshold.

### Claim 16 (depends on 9)

The logic of claim 9, wherein the predicted amount of resources used to pass the data stream without caching is derived from a static model of resource usage of passing without caching per-data stream.

### Claim 17

An apparatus, comprising:
a memory element configured to store data;
a processor operable to execute instructions associated with the data;
a caching engine configured to interface with the memory element and the processor such that the apparatus is configured for:
receiving a data object request;
receiving a data stream;
routing the data stream to a routing engine if the data stream is not being received in response to the data object request; and
if the data stream is being received in response to the data object request:
determining a predicted amount of resources used to cache the data stream at a network element, wherein the predicted amount of resources is derived from a dynamic module of resource usage per-data stream based, at least in part, on the type of data in the data stream;
identifying current resources being consumed by the network element; and
determining whether to cache the data stream based on a sum of the current resources being consumed and the predicted amount of resources used to cache the data stream at the network element.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the predicted amount of resources used to cache the data stream is derived from a static model of resource usage of caching per-data stream when the dynamic module does not include resource usage per-data stream based, at least in part, on the type of data in the data stream.

### Claim 19 (depends on 17)

The apparatus of claim 17, further comprising:
determining the predicted amount of resources used to cache the data stream based on a historical pattern of the amount of resources used to cache at least one data stream.

### Claim 20 (depends on 17)

The apparatus of claim 17, further comprising:
determining characteristics of the data stream; and
determining the predicted amount of resources used to cache the data stream based on a historical pattern of the amount of resources used to cache at least one data stream with similar characteristics.
