IP Library Patent Application 14202553
Patent Application
App. No. 14/202,553

SYSTEM AND METHOD FOR EFFICIENT CONTENT CACHING IN A STREAMING STORAGE

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 None
App. No.
14/202,553
Abstract

One embodiment of the present invention provides a system for caching content data to a streaming storage in a content-centric network (CCN). The system maintains an in-memory index table. A respective entry in the index table specifies a disk location in the streaming storage. During operation, the system receives a content packet, calculates an index for the content packet based on one or more header fields included in the content packet, maps the calculated index to a corresponding entry in the in-memory index table, writes the content packet into the streaming storage, and updates the mapped entry in the in-memory index table based on a disk location to which the content packet is written.

Claims (77)

1 . A computer-executable method for caching content data to a streaming storage in a content-centric network (CCN), the method comprising:

maintaining an in-memory index table, wherein a respective entry in the index table specifies a disk location in the streaming storage;

receiving a content packet;

calculating an index for the content packet based on one or more header fields included in the content packet;

mapping the calculated index to a corresponding entry in the in-memory index table;

writing the content packet into the streaming storage; and

updating the mapped entry in the in-memory index table based on a disk location to which the content packet is written.

2 . The method of claim 1 , further comprising maintaining an in-memory operation buffer configured to reference pending disk operations.

3 . The method of claim 2 , wherein the in-memory operation buffer includes a linked list identifying a set of pending disk operations on a same block in the streaming storage.

4 . The method of claim 1 , wherein the one or more header fields include at least one of: a similarity hash and a forwarding hash.

5 . The method of claim 4 , wherein calculating the index involves hashing a combination of the similarity hash and the forwarding hash to a shorter-length string.

6 . The method of claim 1 , further comprising:

maintaining a tail pointer configured to point to a next available disk location for writing the content packet; and

updating the tail pointer subsequent to writing the content packet in the streaming storage.

7 . The method of claim 1 , wherein the streaming storage includes a plurality of disks, and wherein the respective entry in the index table includes a disk number and a block number.

8 . The method of claim 1 , further comprising:

receiving an interest packet;

calculating an index of the interest packet;

mapping the index of the interest packet to an entry in the in-memory index table;

extracting a disk location from the entry mapped to the index of the interest;

reading content data stored at the extracted disk location; and

returning the content data as a response to the interest packet.

9 . The method of claim 8 , further comprising:

increasing a popularity level associated with the content data; and

in response to determining that the popularity level associated with the content data being higher than a predetermined level, moving the content data to a popular sector within the streaming storage to prevent future over-written of the content data.

10 . An system for caching content data to a streaming storage in a content-centric network (CCN), the system comprising:

a processor; and

a second storage device coupled to the processor and storing instructions which when executed by the processor cause the processor to perform a method, the method comprising:

maintaining an in-memory index table, wherein a respective entry in the index table specifies a disk location in the streaming storage;

receiving a content packet;

calculating an index for the content packet based on one or more header fields included in the content packet;

mapping the calculated index to a corresponding entry in the in-memory index table;

writing the content packet into the streaming storage; and

updating the mapped entry in the in-memory index table based on a disk location to which the content packet is written.

11 . The system of claim 10 , wherein the method further comprises maintaining an in-memory operation buffer configured to reference pending disk operations.

12 . The system of claim 11 , wherein the in-memory operation buffer includes a linked list identifying a set of pending disk operations on a same block in the streaming storage.

13 . The system of claim 10 , wherein the one or more header fields include at least one of: a similarity hash and a forwarding hash.

14 . The system of claim 13 , wherein calculating the index involves hashing a combination of the similarity hash and the forwarding hash to a shorter-length string.

15 . The system of claim 10 , wherein the method further comprises:

maintaining a tail pointer configured to point to a next available disk location for writing the content packet; and

updating the tail pointer subsequent to writing the content packet in the streaming storage.

16 . The system of claim 10 , wherein the streaming storage includes a plurality of disks, and wherein the respective entry in the index table includes a disk number and a block number.

17 . The system of claim 10 , wherein the method further comprises:

receiving an interest packet;

calculating an index of the interest packet;

mapping the index of the interest packet to an entry in the in-memory index table;

extracting a disk location from the entry mapped to the index of the interest;

reading content data stored at the extracted disk location; and

returning the content data as a response to the interest packet.

18 . The system of claim 17 , wherein the method further comprises:

increasing a popularity level associated with the content data; and

in response to determining that the popularity level associated with the content data being higher than a predetermined level, moving the content data to a popular sector within the streaming storage to prevent future over-written of the content data.

19 . A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for caching content data to a streaming storage in a content-centric network (CCN), the method comprising:

maintaining an in-memory index table, wherein a respective entry in the index table specifies a disk location in the streaming storage;

receiving a content packet;

calculating an index for the content packet based on one or more header fields included in the content packet;

mapping the calculated index to a corresponding entry in the in-memory index table;

writing the content packet into the streaming storage; and

updating the mapped entry in the in-memory index table based on a disk location to which the content packet is written.

20 . The computer-readable storage medium of claim 19 , wherein the method further comprises maintaining an in-memory operation buffer configured to reference pending disk operations.

21 . The computer-readable storage medium of claim 20 , wherein the in-memory operation buffer includes a linked list identifying a set of pending disk operations on a same block in the streaming storage.

22 . The computer-readable storage medium of claim 19 , wherein the one or more header fields include at least one of: a similarity hash and a forwarding hash.

23 . The computer-readable storage medium of claim 22 , wherein calculating the index involves hashing a combination of the similarity hash and the forwarding hash to a shorter-length string.

24 . The computer-readable storage medium of claim 19 , wherein the method further comprises:

maintaining a tail pointer configured to point to a next available disk location for writing the content packet; and

updating the tail pointer subsequent to writing the content packet in the streaming storage.

25 . The computer-readable storage medium of claim 19 , wherein the streaming storage includes a plurality of disks, and wherein the respective entry in the index table includes a disk number and a block number.

26 . The computer-readable storage medium of claim 19 , wherein the method further comprises:

receiving an interest packet;

calculating an index of the interest packet;

mapping the index of the interest packet to an entry in the in-memory index table;

extracting a disk location from the entry mapped to the index of the interest;

reading content data stored at the extracted disk location; and

returning the content data as a response to the interest packet.

27 . The computer-readable storage medium of claim 26 , wherein the method further comprises:

increasing a popularity level associated with the content data; and

in response to determining that the popularity level associated with the content data being higher than a predetermined level, moving the content data to a popular sector within the streaming storage to prevent future over-written of the content data.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: CISCO SYSTEMS, INC.
Reel/Frame 041714/0373 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: CISCO SYSTEMS, INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 041715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2014
From: MOSKO, MARC E.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 032863/0499 →