IP Library Granted Patent US 10,922,225
Granted Patent B2
US 10,922,225 · App. 13/790,163 · Granted Feb 16, 2021

Fast cache reheat

Inventors: Rodney George Harrison (London, GB); Jason Paul O'Broin (San Jose, CA)
Assignee: Drobo, Inc.
G06F12/0802G06F11/1441G06F12/0893G06F2201/84
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 10,922,225
App. No.
13/790,163
Granted
Feb 16, 2021
Kind
B2
Abstract

Embodiments of the present invention allow for fast cache reheat by periodically storing a snapshot of information identifying the contents of the cache at the time of the snapshot, and then using the information from the last snapshot to restore the contents of the cache following an event that causes loss or corruption of cache contents such as a loss of power or system reset. Since there can be a time gap between the taking of a snapshot and such an event, the actual contents of the cache, and hence the corresponding data stored in a data store, may have changed since the last snapshot was taken. Thus, the information stored at the last snapshot is used to retrieve current data from the data store for use in restoring the contents of the cache.

Claims (40)

1. A method for fast cache reheat in a data storage system, the method comprising:

providing a volatile memory cache that includes content corresponding to a set of data blocks in a non-volatile second data store, wherein the non-volatile second data store is disk storage or solid state storage;

periodically storing, in a non-volatile first data store, a snapshot of an index identifying storage locations of the set of data blocks, wherein such periodically storing of the snapshot is performed prior to a restart of the data storage system;

upon a restart of the data storage system causing loss or corruption of the contents of the volatile memory cache, restoring the cache from data in the non-volatile second data store that is persistently stored and available for retrieval upon the restart of the data storage system by:

retrieving from the first data store the index from the last snapshot stored prior to the restart, the last snapshot identifying content of the cache at a time of storing the last snapshot;

retrieving, from the non-volatile second data store, data from the storage locations identified in the index from the last snapshot; and

storing the retrieved data in the cache, wherein the cache is separate from the first and second data stores.

2. A method according to claim 1 , wherein the first data store and the second data store are the same data store.

3. A method according to claim 1 , wherein the first data store and the second data store are different data stores.

4. A method according to claim 1 , wherein at least one of the first data store or the second data store includes a set of block storage devices.

5. A method according to claim 1 , wherein the index identifies physical storage locations.

6. A method according to claim 1 , wherein the index identifies virtual storage addresses.

7. A method according to claim 6 , wherein retrieving data from storage locations identified in the index comprises:

translating a virtual storage address to a physical storage address for the second data store.

8. A method according to claim 1 , wherein the cache includes an application program interface, and wherein the cache provides the index via the application program interface.

9. A method according to claim 8 , wherein retrieving data from storage locations identified in the index comprises:

providing the retrieved index to the cache via the application program interface; and

retrieving the data by the cache.

10. A method according to claim 9 , wherein the data storage system includes a cache miss handler, and wherein retrieving the data by the cache includes making calls to the cache miss handler by the cache.

11. A data storage system comprising:

a storage processor configured to manage storage of data in at least one non-volatile data store; and

a volatile memory cache that includes content corresponding to a set of data blocks in a non-volatile second data store, wherein the non-volatile second data store is disk storage or solid state storage, wherein:

the storage processor is configured to periodically store, in a non-volatile first data store, a snapshot of an index identifying storage locations of the set of data blocks, wherein such periodically storing of the snapshot is performed prior to a restart of the data storage system, and, upon a restart of the data storage system causing loss or corruption of the contents of the volatile memory cache, retrieve the index from the last snapshot stored prior to the restart, the last snapshot identifying content of the cache at a time of storing the last snapshot; and

at least one of the storage processor and the cache is configured to retrieve, from the non-volatile second data store, data from the storage locations identified in the index from the last snapshot and store the retrieved data in the cache, data in the non-volatile second data store is persistently stored and available for retrieval upon the restart of the data storage system, wherein the cache is separate from the first and second data stores.

12. A system according to claim 11 , wherein the first data store and the second data store are the same data store.

13. A system according to claim 11 , wherein the first data store and the second data store are different data stores.

14. A system according to claim 11 , wherein at least one of the first data store or the second data store includes a set of block storage devices.

15. A system according to claim 11 , wherein the index identifies physical storage locations.

16. A system according to claim 11 , wherein the index identifies virtual storage addresses.

17. A system according to claim 16 , wherein retrieving data from storage locations identified in the index comprises:

translating a virtual storage address to a physical storage address for the second data store.

18. A system according to claim 11 , wherein:

the cache includes an application program interface;

the cache provides the index to the storage processor via the application program interface; and

the storage processor stores the snapshot of the index in the second data store.

19. A system according to claim 18 , wherein retrieving data from storage locations identified in the index comprises:

retrieving the index from the second data store by the storage processor;

providing the retrieved index by the storage processor to the cache via the application program interface; and

retrieving the data by the cache.

20. A system according to claim 19 , wherein the storage processor includes a cache miss handler, and wherein retrieving the data by the cache includes making calls to the cache miss handler by the cache.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2023
From: STORCENTRIC, INC.; DROBO, INC.; NEXSAN CORPORATION; NEXSAN TECHNOLOGIES INCORPORATED; VS ACQUISITION COMPANY, LLC; CONNECTED DATA, INC.; RETROSPECT, INC.
To: STORCENTRIC DIP LENDER, LLC
Reel/Frame 063416/0914 →
RELEASE OF SECURITY INTEREST Recorded Apr 24, 2023
From: NEWLIGHT CAPITAL, LLC; UMB BANK, NATIONAL ASSOCIATION
To: STORCENTRIC, INC.; CONNECTED DATA, INC.; DROBO, INC.; NEXSAN TECHNOLOGIES INCORPORATED; NEXSAN CORPORATION; RETROSPECT, INC.
Reel/Frame 063414/0816 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER: 13532559 PREVIOUSLY RECORDED AT REEL: 051860 FRAME: 0839. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 10, 2021
From: STORCENTRIC, INC.; CONNECTED DATA, INC.; DROBO, INC.; NEXSAN TECHNOLOGIES INCORPORATED; NEXSAN CORPORATION; RETROSPECT, INC.
To: NEWLIGHT CAPITAL, LLC; UMB BANK, NATIONAL ASSOCIATION, AS TRUSTEE
Reel/Frame 057156/0743 →
SECURITY INTEREST Recorded Feb 19, 2020
From: STORCENTRIC, INC.; CONNECTED DATA, INC.; DROBO, INC.; NEXSAN TECHNOLOGIES INCORPORATED; NEXSAN CORPORATION; RETROSPECT, INC.
To: NEWLIGHT CAPITAL, LLC; UMB BANK, NATIONAL ASSOCIATION, AS TRUSTEE
Reel/Frame 051860/0839 →
RELEASE OF SECURITY INTEREST Recorded Feb 19, 2020
From: GORDON BROTHERS FINANCE CO.
To: STORCENTRIC, INC.; DROBO, INC.; NEXSAN CORPORATION; NEXSAN TECHNOLOGIES INCORPORATED; CONNECTED DATA, INC.; NEXSAN TECHNOLOGIES LIMITED; NEXSAN TECHNOLOGIES CANADA INC.
Reel/Frame 051864/0774 →
SHORT FORM INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 17, 2018
From: DROBO, INC.; NEXSAN CORPORATION; NEXSAN TECHNOLOGIES INCORPORATED; CONNECTED DATA, INC.; NEXSAN TECHNOLOGIES LIMITED; NEXSAN TECHNOLOGIES CANADA INC.; DROBO LIMITED
To: GORDON BROTHERS FINANCE COMPANY, AS AGENT
Reel/Frame 046845/0495 →
RELEASE OF SECURITY INTEREST Recorded Aug 17, 2018
From: MONTAGE CAPITAL II, LP
To: DROBO, INC.
Reel/Frame 047881/0892 →
RELEASE OF SECURITY INTEREST Recorded Aug 17, 2018
From: EAST WEST BANK
To: DROBO, INC.
Reel/Frame 046847/0959 →
RELEASE OF SECURITY INTEREST Recorded Oct 27, 2017
From: VENTURE LENDING & LEASING VI, INC.; VENTURE LENDING & LEASING VII, INC.
To: DROBO, INC.
Reel/Frame 044311/0620 →
SECURITY INTEREST Recorded Sep 29, 2017
From: DROBO, INC.
To: MONTAGE CAPITAL II, L.P.
Reel/Frame 043745/0096 →
SECURITY INTEREST Recorded May 18, 2015
From: DROBO, INC.
To: EAST WEST BANK
Reel/Frame 035663/0328 →
SECURITY INTEREST Recorded Sep 30, 2014
From: DROBO, INC.
To: VENTURE LENDING & LEASING VI, INC.; VENTURE LENDING & LEASING VII, INC.
Reel/Frame 033853/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2013
From: HARRISON, RODNEY G.; O'BROIN, JASON P.
To: DROBO, INC.
Reel/Frame 030158/0183 →
Continuity (5)
Continuation In Part 13363740 · Feb 1, 2012
Provisional Application 61547953 · Oct 17, 2011
Provisional Application 61440081 · Feb 7, 2011
Provisional Application 61438556 · Feb 1, 2011
Related Publication 20130198456A1 · Aug 1, 2013