IP Library Granted Patent US 9,866,647
Granted Patent B2
US 9,866,647 · App. 14/669,408 · Granted Jan 9, 2018

Hierarchical cost based caching for online media

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 9,866,647
App. No.
14/669,408
Granted
Jan 9, 2018
Kind
B2
Abstract

A method of operating a first cache device may include receiving, at the first cache device, a request to send a first asset to a second device; determining whether the first asset is stored at the first cache device; and when the determining determines that the first asset is not stored at the first cache device, obtaining, at the first cache device, the first asset, comparing, at the first cache device, a moving average of a marginal value of the first asset with respect to the first cache device and a characteristic marginal value of the first cache device, calculating a cost associated with the first asset, selectively storing the first asset at the first cache device based on the comparison, and sending the obtained first asset and the calculated cost to the second device.

Claims (76)

1. A method of operating a first cache device, the method comprising:

receiving, at the first cache device, a request to send a first asset to a second device;

determining whether the first asset is stored at the first cache device; and

when the determining determines that the first asset is not stored at the first cache device,

obtaining, by the first cache device, the first asset,

calculating, by the first cache device, a cost associated with the first asset,

selectively storing the first asset at the first cache device based on a moving average of a marginal value of the first asset with respect to the first cache device and a characteristic marginal value of the first cache device, the characteristic marginal value of the first cache device representing a cost conscious average period of time between receipt of last requests for, and eviction of, assets cached at the first cache device, and

sending the first asset and the calculated cost from the first cache device to the second device.

2. The method of claim 1 , wherein the first cache device is one of a plurality of cache devices of a content distribution network divided into a plurality of hierarchy levels, and the method further comprises:

for each of the plurality of cache devices,

determining a moving average of the marginal value of a requested asset, when a request for the requested asset is received by a respective one of the plurality of cache devices, and

determining a characteristic marginal value associated with a respective one of the plurality of cache devices, when the cache device evicts an asset.

3. The method of claim 2 , wherein the obtaining obtains the first asset and an obtained cost associated therewith from a higher level of the plurality of hierarchy levels, and the calculating the cost includes adding a marginal cost to the obtained cost if the selectively storing does not store the first asset.

4. The method of claim 1 , further comprising:

determining the characteristic marginal value of the first cache device by,

initializing the characteristic marginal value of the first cache device as an initialized characteristic marginal value which is higher than an initialized value of the moving average of the marginal value of the first asset with respect to the first cache device, and

updating the characteristic marginal value of the first cache device based on exponentially weighted moving average of periods of time between receipt of last requests for, and eviction of, assets cached at the first cache device and the cost associated with the assets, in accordance with a least recently used cache eviction policy.

5. The method of claim 4 , wherein the updating the characteristic marginal value of the first cache device further includes,

gently increasing the characteristic marginal value of the first cache device, when the first cache device evicts an asset.

6. The method of claim 4 , further comprising:

determining the moving average of the marginal value of the first asset with respect to the first cache device by,

initializing the moving average of the marginal value of the first asset with respect to first cache device as a value lower than the initialized characteristic marginal value of the first cache device, and

updating the moving average of the marginal value of the first asset with respect to the first cache device based on exponentially weighted moving average of periods of time between consecutive receipts of requests for the first asset and the cost associated with the first asset, at the first cache device, the requests requesting the first cache device to send the first asset to another device.

7. The method of claim 1 , wherein the selectively storing includes,

assigning the first asset to a first database, when an initial request for the first asset is received at the first cache device; and

when a second request is received consecutively with respect to the initial request,

determining an inter-arrival time of the first asset based on times at which the initial request and the second request were received at the first cache device, and

if a number of assets stored in an inter-arrival database is greater than or equal to a threshold then,

determining a second asset to remove from an inter-arrival database based on which of a plurality of assets stored in the inter-arrival database has a largest marginal value associated therewith that decreases as the cost associated with the second asset increases, the inter-arrival database storing arrival times of requests corresponding to assets, the inter-arrival database being different than the first database, and

removing the second asset from the inter-arrival database; and

assigning the first asset to the inter-arrival database.

8. The method of claim 7 , further comprising:

determining the marginal value of the assets by dividing a last requested time of each of the plurality of assets by the cost associated therewith.

9. The method of claim 1 , wherein the cost associated with the first asset represents one or more of a number of hops between a source of the first asset and the first cache device and a latency the first asset encountered therebetween.

10. A first cache device comprising:

a processor and a memory, the memory containing computer readable code that, when executed by the processor, configures the processor to,

receive a request to send a first asset to a second device,

determine whether the first asset is stored at the first cache device, and

when the processor determines that the first asset is not stored at the first cache device, the processor is configured to,

obtain, by the first cache device, the first asset,

calculate, by the first cache device, a cost associated with the first asset,

selectively store the first asset at the first cache device based on a moving average of a marginal value of the first asset with respect to the first cache device and a characteristic marginal value of the first cache device, the characteristic marginal value of the first cache device representing a cost conscious average period of time between receipt of last requests for, and eviction of, assets cached at the first cache device, and

send the first asset and the calculated cost from the first cache device to the second device.

11. The first cache device of claim 10 , wherein,

the first cache device is one of a plurality of cache devices of a content distribution network divided into a plurality of hierarchy levels, each of the plurality of cache devices having a processor associated therewith, and

each one of the plurality of cache devices is configured to,

determine a moving average of the marginal value of a requested asset,

when a request for the requested asset is received by a respective one of the plurality of cache devices, and

determine a characteristic marginal value associated with a respective one of the plurality of cache devices, when the cache device evicts an asset.

12. The first cache device of claim 11 , wherein the processor is configured to obtain the first asset and an obtained cost associated therewith from a higher level of the plurality of hierarchy levels, and calculate the cost by adding a marginal cost to the obtained cost if the processor determines not to store the first asset.

13. The first cache device of claim 10 , wherein the processor is configured to determine the characteristic marginal value of the first cache device by,

initializing the characteristic marginal value of the first cache device as an initialized characteristic marginal value which is higher than an initialized value of the moving average of the marginal value of the first asset with respect to the first cache device, and

updating the characteristic marginal value of the first cache device based on exponentially weighted moving average of periods of time between receipt of last requests for, and eviction of, assets cached at the first cache device and the cost associated with the assets, in accordance with a least recently used cache eviction policy.

14. The first cache device of claim 10 , wherein the processor is configured to update the characteristic marginal value of the first cache device by gently increasing the characteristic marginal value of the first cache device, when the first cache device evicts an asset.

15. The first cache device of claim 13 , wherein the processor is configured to determine the moving average of the marginal value of the first asset with respect to the first cache device by,

initializing the moving average of the marginal value of the first asset with respect to first cache device as a value lower than the initialized characteristic marginal value of the first cache device, and

updating the moving average of the marginal value of the first asset with respect to the first cache device based on exponentially weighted moving average of periods of time between consecutive receipts of requests for the first asset and the cost associated with the first asset, at the first cache device, the requests requesting the first cache device to send the first asset to another device.

16. The first cache device of claim 10 , wherein the processor is configured to selectively store the first asset by,

assigning the first asset to a first database, when an initial request for the first asset is received at the first cache device;

if a number of assets stored in an inter-arrival database is greater than or equal to a threshold when a second request is received consecutively with respect to the initial request then,

determining an inter-arrival time of the first asset based on times at which the initial request and the second request were received at the first cache device, and

determining a second asset to remove from an inter-arrival database based on which of a plurality of assets stored in the inter-arrival database has a largest marginal value associated therewith that decreases as the cost associated with the second asset increases, the inter-arrival database storing arrival times of requests corresponding to assets, the inter-arrival database being different than the first database, and

removing the second asset from the inter-arrival database; and

assigning the first asset to the inter-arrival database.

17. The first cache device of claim 16 , wherein the processor is configured to determine the marginal value of the assets by dividing a last requested time of each of the plurality of assets by the cost associated therewith.

18. The first cache device of claim 10 , wherein the cost associated with the first asset represents one or more of a number of hops between a source of the first asset and the first cache device and a latency the first asset encountered therebetween.

19. A method of operating a content distribution network, the content distribution network including a plurality of first cache devices, the plurality of first cache devices being divided into a plurality of hierarchy levels, the method comprising:

performing a first caching operation for each of the plurality of first cache devices, respectively, such that, for each one of the plurality of first caching devices divided into the plurality of hierarchy levels, the first caching operation includes,

receiving, by the first cache device, a request to send a first asset to a second device;

determining, by the first cache device, whether the first asset is stored at the first cache device; and

when the determining determines that the first asset is not stored at the first cache device,

obtaining, at the first cache device, the first asset,

calculating a cost associated with the first asset,

selectively storing the first asset at the first cache device based on a moving average of a marginal value of the first asset with respect to the first cache device and a characteristic marginal value of the first cache device, the characteristic marginal value of the first cache device representing a cost conscious average period of time between receipt of last requests for, and eviction of, assets cached at the first cache device, and

sending the first asset and the calculated cost from the first cache device to the second device.

20. The method of claim 19 , wherein the obtaining obtains the first asset and an obtained cost associated therewith from a higher level of the plurality of hierarchy levels, and the calculating the cost includes adding a marginal cost to the obtained cost if the selectively storing does not store the first asset.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2016
From: ALCATEL-LUCENT USA INC.
To: ALCATEL LUCENT
Reel/Frame 038615/0388 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2016
From: AKHTAR, SHAHID
To: ALCATEL-LUCENT USA INC.
Reel/Frame 037478/0561 →