IP Library Granted Patent US 8,375,164
Granted Patent B2
US 8,375,164 · App. 12/905,223 · Granted Feb 12, 2013

Content addressable storage with reduced latency

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 8,375,164
App. No.
12/905,223
Granted
Feb 12, 2013
Kind
B2
Abstract

A system and method for storing data in a content-addressable system is provided. The system includes a content-addressable storage system and a persistent cache. The persistent cache includes a temporary address generator that is configured to generate a temporary address which is associated with data to be stored in the persistent cache, and a non-content-addressable storage system configured to store and retrieve data in the persistent cache using the temporary address. The persistent cache further comprises an address translator configured to map a temporary address associated with the data in the non-content addressable storage system with a content address associated with the data in the content-addressable storage system.

Claims (28)

1. A storage system, comprising:

a content-addressable storage system and a persistent cache, wherein the persistent cache comprises:

a non-volatile memory;

a temporary address generator configured to generate a temporary address which is associated with data to be stored in the persistent cache in response to a write request from an application;

a non-content-addressable storage system configured to store and retrieve data in the persistent cache using the temporary address;

a cache manager configured to forward a write acknowledgment comprising the temporary address to the application and write the data that was stored in the non-content-addressable storage system to the content-addressable storage system; and

an address translator configured to map a temporary address associated with the data in the non-content addressable storage system with a content address associated with the data in the content-addressable storage system;

wherein the application initially request the data using the temporary address and subsequently requests the data using the content address, and wherein the cache manager issues a read request to either the non-content-addressable storage system or the content-addressable storage system depending upon whether an address received from the application is determined to be the temporary address or the content address based on a bit in the address.

2. The system of claim 1 , wherein the cache manager is further configured to determine whether an address associated with a read request is the temporary address or the content address.

3. The system of claim 1 , wherein the persistent cache handles a read request for the temporary address by reading data associated with the temporary address from the persistent cache if the data resides in the non-content-addressable storage system, or alternatively by obtaining from the address translator the content address associated with the temporary address and issuing a read request to the content-addressable storage system using the content address.

4. The system of claim 1 , wherein data is deleted from the persistent cache after the data has been written to the content-addressable storage system, but the mapping between the temporary address and the content address is retained.

5. The system of claim 1 , wherein a mapping between the temporary address and the content address is periodically deleted.

6. The system of claim 5 , wherein the mapping is deleted after an application drops all temporary addresses returned to it.

7. The system of claim 1 , wherein the non-content addressable storage system comprises a solid-state drive or hard disk drive.

8. A method for storing data in a storage system, comprising:

determining whether data associated with a write request issued by an application is to be stored in a non-content-addressable storage system or written directly to a content-addressable storage system;

if it is determined that the data is to be stored in the non-content-addressable storage system:

generating a temporary address for the data to be stored in the non-content-addressable storage system;

issuing an acknowledgment to the application that data is persistently stored in the non-content addressable storage system before the data is written to a content-addressable storage system, the acknowledgment including the temporary address;

writing the data that was stored in the non-content-addressable storage system to the content-addressable storage system; and

mapping at least one temporary address associated with the data in the non-content-addressable storage system with a content address of the data in the content-addressable storage system after the data is written to the content-addressable storage system;

wherein the application initially requests the data using the temporary address and subsequently requests the data using the content address, and wherein a cache manager issues a read request to either the non-content-addressable storage system or the content-addressable storage system depending upon whether an address received from the application is determined to be the temporary address or the content address based on a bit in the address.

9. The method of claim 8 , wherein the storage system is configured to determine whether an address associated with a read request is the temporary address or the content address.

10. The method of claim 8 , wherein a read request for the temporary address is handled by reading data associated with the temporary address from the non-content addressable storage system if the data resides in the non-content-addressable storage system, or alternatively by obtaining the content address associated with the temporary address and issuing a read request to the content-addressable storage system using the content address.

11. The method of claim 8 , wherein data is deleted from the non-content-addressable storage system after the data has been written to the content-addressable storage system, but the mapping between the temporary address and the content address is retained.

12. The method of claim 8 , wherein a mapping between the temporary address and the content address is periodically deleted.

13. The method of claim 12 , wherein the mapping is deleted after an application drops all temporary addresses returned to it.

14. The method of claim 8 , wherein the non-content addressable storage system comprises a solid-state drive or hard disk drive.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE 8538896 AND ADD 8583896 PREVIOUSLY RECORDED ON REEL 031998 FRAME 0667. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 30, 2017
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 042754/0703 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2014
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 031998/0667 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2010
From: UNGUREANU, CRISTIAN
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 025144/0258 →