IP Library Granted Patent US 9,667,735
Granted Patent B2
US 9,667,735 · App. 14/210,717 · Granted May 30, 2017

Content centric networking

Inventors: Daniel Rubenstein (New York, NY); Vishal Misra (New York, NY); Hanhua Feng (Perry Hall, MD); Martin C. Martin (Bedford, MA)
Assignee: Infinio Systems, Inc.
H04L67/2842G06F17/30132H04N21/2183
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,667,735
App. No.
14/210,717
Granted
May 30, 2017
Kind
B2
Abstract

A caching system is provided. The computing infrastructure runs off of a centralized storage, and data stored on the centralized store can also be retrieved from nearby machines that are part of the local infrastructure and have recently accessed the centralized store. Address-to-digest mappings are used to find an index of the desired data block. That digest is then used to hold where the data block is being cached. In some embodiments, the digest is hashed and the hash of the digest is used to determine where the data block is being cached. The data block is accessed from the cache using its cache, therefore different addresses may result in the retrieval of the same data block. For example, in a virtual machine environment, two different nodes may retrieve the same data block using different addresses.

Claims (22)

1. A method for a requesting node to retrieve a data block located within a shared cache, wherein said shared cache comprises a plurality of smaller local caches, each smaller local cache possessed by a respective one of a plurality of nodes, said method comprising:

maintaining an address-to-digest mapping in said smaller local cache possessed by said requesting node, wherein the data block is located at an address accessible by the requesting node;

indexing into said address-to-digest mapping using said address of said data block to determine a digest for said data block, where said digest is generated based exclusively on data contained within said data block, where said digest serves as a universal identifier used by all of said nodes to identify said data block;

using said digest to determine which of said smaller local caches contains said block; and

retrieving said data block from said smaller local cache containing said block, wherein said data block is identified based on its digest.

2. The method of claim 1 , wherein each of said nodes implements one or more virtual machines, and said addresses used in said address to digest mapping disposed in each of said smaller local caches are unique to said respective node possessing each of said smaller local cache.

3. The method of claim 1 , wherein said smaller local cache containing said data block is possessed by said requesting node.

4. The method of claim 1 , wherein said smaller local cache containing said data block is possessed by a node different from said requesting node.

5. The method of claim 1 , wherein further comprising retrieving said data block from said smaller local cache containing said block by a second node, different from said requesting node.

6. The method of claim 5 , wherein an address of said data block used by said second node is different than said address of said data block used by said requesting node.

7. The method of claim 1 , wherein determining which of said smaller local caches containing said block is performed by generating a hash of said digest, wherein said hash is used to determine said smaller local cache containing said block.

8. The method of claim 7 , wherein said shared cache contains a directory lookup service, and said directory lookup service uses said hash of said digest to determine which of said smaller caches contains said data block.

9. A system for indirect caching of data blocks comprising

a network of nodes,

a directory lookup service distributed over a subset of said nodes, said directory lookup service containing location information for said data block,

wherein a hash on a digest for said data block determines a node responsible for maintaining directory information for said data block, and wherein said digest is determined by using a system address of said data block to index into an address-to-digest mapping to determine said digest, where said digest is generated based exclusively on the data contained within the data block and serves as a universal identifier used by all of said nodes to identify said data block.

10. The system for indirect caching of claim 9 wherein said directory lookup service is centralized at one location.

11. The system for indirect caching of claim 9 wherein said directory lookup service is mirrored at each node.

12. The system for indirect caching of claim 9 wherein said directory lookup service is distributed via employment of a hash function with nodes being responsible for a subset of the directory.

13. The system for indirect caching of claim 9 wherein said directory lookup service is distributed with each block's location information retrievable at multiple nodes.

14. The system for indirect caching of claim 13 wherein multiple hash functions locate the multiple nodes.

15. The system for indirect caching of claim 13 wherein designated mirrors are assigned per node.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 7, 2016
From: INFINIO SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 039277/0588 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2014
From: RUBENSTEIN, DANIEL; MISRA, VISHAL; FENG, HANHUA; MARTIN, MARTIN C.
To: INFINIO SYSTEMS, INC.
Reel/Frame 032644/0450 →
Continuity (2)
Provisional Application 61789547 · Mar 15, 2013
Related Publication 20140280689A1 · Sep 18, 2014