IP Library Granted Patent US 8,443,134
Granted Patent B2
US 8,443,134 · App. 12/885,285 · Granted May 14, 2013

Apparatus, system, and method for graceful cache device degradation

Inventor: David Flynn (Sandy, UT)
Assignee: Fusion-io, Inc.
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,443,134
App. No.
12/885,285
Granted
May 14, 2013
Kind
B2
Abstract

Apparatuses, systems, and methods are disclosed for implementing a cache policy. A method may include determining a risk of data loss on a cache device. The cache device may comprise a non-volatile storage device configured to perform cache functions for a backing store. The cache device may implement a cache policy. A method may include determining that a risk of data loss on the cache devices exceeds a threshold risk level. A method may include implementing a modified cache policy for the cache device in response to the risk of data loss exceeding the threshold risk level. The modified cache policy may reduce the risk of data loss below the threshold level.

Claims (41)

1. A method for caching using a nonvolatile storage device, the method comprising:

determining a risk of data loss on a cache device, wherein the cache device is a non-volatile storage device configured to perform cache functions for a backing store and implements a cache policy;

determining that the risk of data loss on the cache device exceeds a threshold risk level; and

implementing a modified cache policy for the cache device in response to the risk of data loss exceeding the threshold risk level, the modified cache policy reducing the risk of data loss below the threshold risk level.

2. The method of claim 1 , wherein the cache policy specifies how the cache device responds to one or more of read requests and write requests.

3. The method of claim 1 , wherein determining the risk of data loss comprises gauging a physical health of the cache device, and wherein the risk of data loss increases as the physical health of the cache device degrades.

4. The method of claim 1 , further comprising identifying a plurality of cache policies that reduce the risk of data loss below the threshold risk level, and selecting a modified cache policy that provides a highest level of cache functionality from the plurality of cache policies.

5. The method of claim 1 , wherein implementing the modified cache policy for the cache device comprises dynamically implementing the modified cache policy that reduces the risk of data loss below the threshold risk level.

6. The method of claim 5 , wherein the modified cache policy reduces the risk of data loss by ensuring that data associated with write requests is preserved on the backing store.

7. The method of claim 1 , wherein the modified cache policy is one of: a write through cache policy; a write around cache policy; a read only cache policy; and a bypass cache policy.

8. The method of claim 1 , wherein the cache device is a solid state storage device having a plurality of banks of solid-state storage elements, wherein the cache device sequences execution of solid-state storage commands such that a first command of a first execution duration executes on a first bank concurrently with execution of a second command of a second execution duration on a second bank.

9. The method of claim 8 , wherein the cache device generates an error-correcting code (ECC) chunk comprising at least a portion of received data and an ECC code capable of correcting an error in the ECC chunk, and wherein the cache device further stores a first portion of the ECC chunk on a first solid-state storage element and a second portion of the ECC chunk on a second solid-state storage element.

10. The method of claim 1 , wherein the cache device comprises a plurality of physical devices cooperating such that the plurality of physical devices serve as a single logical cache device.

11. The method of claim 1 , further comprising:

determining a cache device state of the cache device; and

determining the risk of data loss for the cache device in response to the cache device state.

12. An apparatus for caching using a nonvolatile storage device, the apparatus comprising:

a direct cache configured for communication with a cache device and a backing store, wherein the cache device is a non-volatile storage device configured to perform cache functions for the backing store, the direct cache comprising:

a monitor module configured for determining a risk of data loss on

the cache device;

a cache policy module configured for implementing a modified cache policy for the cache device if a risk of data loss on the cache device exceeds a threshold risk level; and

wherein the direct cache is configured to recieve, from the cache device,

one or more indicators associated with the risk of data loss on the cache device.

13. The apparatus of claim 12 , wherein the cache policy module is further configured to send write requests to the cache device, send the write requests to the backing store, and receive acknowledgements in response to the backing store fulfilling the write requests.

14. The apparatus of claim 12 , wherein the cache policy module is further configured to send write requests exclusively to the backing store such that the write requests bypass the cache device and to receive acknowledgements in response to the backing store fulfilling the write requests.

15. The apparatus of claim 14 , wherein the cache policy module is further configured to first direct read requests to the cache device for fulfillment.

16. The apparatus of claim 12 , wherein the cache policy module is further configured to bypass the cache device such that write requests are sent exclusively to the backing store, and such that read requests are sent exclusively to the backing store.

17. The apparatus of claim 12 , wherein the direct cache communicates with the cache device using a caching interface.

18. The apparatus of claim 12 , wherein the direct cache is a stand-alone driver.

19. A system for caching using a nonvolatile storage device, the system comprising:

a backing store configured for storing data received from one or more storage clients,

wherein the backing store comprises one or more non-volatile storage devices;

a cache device configured for performing cache functions for the backing store,

wherein the cache device is a non-volatile storage device with faster access characteristics than those of the backing store, and wherein the cache device is configured to implement a cache policy;

a direct cache configured for:

determining a risk of data loss on the cache device;

determining that the risk of data loss on the cache device exceeds a threshold risk level; and

implementing a modified cache policy for the cache device in response to the risk of data loss exceeding the threshold risk level, the modified cache policy reducing the risk of data loss below the threshold risk level.

20. The system of claim 19 , wherein the direct cache is configured to communicate with the cache device using a caching interface.

21. The system of claim 19 , wherein the cache policy specifies how the cache device responds to one or more of read requests and write requests received from the one or more storage clients.

22. The system of claim 19 , wherein the modified cache policy reduces the risk of data loss by ensuring that data associated with write requests is preserved on the backing store.

Assignments (9)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038362/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: LONGITUDE ENTERPRISE FLASH SARL
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 038324/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2014
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033419/0748 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033389/0511 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2010
From: FLYNN, DAVID
To: FUSION-IO, INC.
Reel/Frame 025327/0744 →
Continuity (10)
Continuation In Part 11952123 · Dec 6, 2007
Continuation In Part 12877971 · Sep 8, 2010
Continuation In Part 12847952 · Jul 30, 2010
Provisional Application 60873111 · Dec 6, 2006
Provisional Application 60974470 · Sep 22, 2007
Provisional Application 61240573 · Sep 8, 2009
Provisional Application 61240966 · Sep 9, 2009
Provisional Application 61373271 · Aug 12, 2010
Provisional Application 61368564 · Jul 28, 2010
Related Publication 20110047437A1 · Feb 24, 2011