IP Library Granted Patent US 6,993,627
Granted Patent B2
US 6,993,627 · App. 10/015,088 · Granted Jan 31, 2006

Data storage system and a method of storing data including a multi-level cache

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 6,993,627
App. No.
10/015,088
Granted
Jan 31, 2006
Kind
B2
Abstract

A data storage system ( 100 ) and a method of storing data are described including a cache ( 118 ) with a variable number of levels ( 210, 220, 230, 240 ). Each level in the cache ( 118 ) has a cache controller ( 212, 222, 232, 242 ) and a cache memory ( 214, 224, 234, 244 ) for storing data. An address mapping is recorded and applied between each of the levels of the cache ( 118 ). The address mapping corresponds to a point in time virtual copy operation such as a snapshot copy operation applied to the cache ( 118 ) and enables point in time virtual copy operations to be carried out in electronic time. A new level is created in the cache ( 118 ) when a point in time virtual copy operation is received by the cache and a corresponding address mapping is applied to the previous level in the cache ( 118 ).

Claims (36)

1. A data storage system including a cache comprising a variable number of levels, each level having a cache controller and a cache memory wherein means are provided for address mapping to be recorded and applied between each level of the cache.

2. A data storage system as claimed in claim 1 , wherein the means for address mapping are provided for a level between that level and the level above in the cache.

3. A data storage system as claimed in claim 1 , wherein the cache includes means for creating a new level in the cache above an existing level and means are also provided for tying an address mapping to the existing level.

4. A data storage system as claimed in claim 1 , wherein the address mapping between the levels of the cache corresponds to a point in time virtual copy operation which has been committed to the cache in electronic time.

5. A data storage system as claimed in claim 4 , wherein a new level is created in the cache when a point in time virtual copy operation is committed to the cache.

6. A data storage system as claimed in claim 4 , wherein a plurality of point in time virtual copy operations are tied to a single level provided the point in time virtual copy operations do not conflict with any intervening writes to the cache.

7. A data storage system as claimed in claim 1 , wherein the cache includes means for deleting a level of the cache including means for destaging data from the level to underlying storage devices.

8. A data storage system as claimed in claim 1 , wherein lower levels of the cache are destaged before upper levels and after a level is destaged, the address mapping recorded for a destaged level is applied to underlying storage devices.

9. A data storage system as claimed in claim 1 , wherein the data storage system also includes a processor and memory, and underlying data storage devices in the form of an array of storage devices having a plurality of data blocks organized on the storage devices in segments distributed across the storage devices, wherein when a data block in a segment stored on the storage devices in a first location is updated, the updated data block is assigned to a different segment, written to a new storage location and designated as a current data block, and the data block in the first location is designated as an old data block, and having a main directory, stored in memory, containing the locations on the storage devices of the current data blocks.

10. A data storage system as claimed in claim 4 , wherein the data storage system is in the form of a log structured array and the point in time virtual copy operation is a snapshot copy operation.

11. A data storage system as claimed in claim 4 , wherein the point in time virtual copy operation is a flash copy operation.

12. A cache comprising high-speed memory, the cache having a variable number of levels, each level having a cache controller and a cache memory, wherein means are provided for address mapping to be recorded and applied between each level.

13. A cache as claimed in claim 12 , wherein the means for address mapping are provided for a level between that level and the level above in the cache.

14. A cache as claimed in claim 12 , wherein the cache includes means for creating a new level in the cache above an existing level and means are also provided for tying an address mapping to the existing level.

15. A cache as claimed in claim 12 , wherein the address mapping corresponds to a point in time virtual copy operation which has been committed to the cache in electronic time.

16. A cache as claimed in claim 15 , wherein a new level is created when a point in time virtual copy operation is committed to the cache.

17. A cache as claimed in claim 15 , wherein a plurality of point in time virtual copy operations are tied to a single level provided the point in time virtual copy operations do not conflict with any intervening writes.

18. A cache as claimed in claim 12 , wherein the cache includes means for deleting a level of the cache including means for destaging data from the level to an underlying storage system.

19. A cache as claimed in claim 12 , wherein lower levels of the cache are destaged before upper levels and after a level is destaged, the address mapping recorded for that level is applied to an underlying storage system.

20. A cache as claimed in claim 15 , wherein the point in time virtual copy operation is a snapshot copy operation.

21. A cache as claimed in claim 15 , wherein the point in time virtual copy operation is a flash copy operation.

22. A method of data storage comprising reading and writing data to a cache having a variable number of levels, wherein the method includes recording and applying address mapping between each level of the cache.

23. A method of data storage as claimed in claim 22 , wherein the address mapping is provided for a level between that level and the level above in the cache.

24. A method of data storage as claimed in claim 22 , wherein the method includes creating a new level in the cache above an existing level and tying an address mapping to the existing level.

25. A method of data storage as claimed in claim 22 , wherein the address mapping between the levels of the cache corresponds to a point in time virtual copy operation which has been committed to the cache in electronic time.

26. A method of data storage as claimed in claim 25 , wherein the method includes creating a new level in the cache when a point in time virtual copy operation is committed to the cache.

27. A method of data storage as claimed in claim 22 , including the steps of: writing data to a first level of the cache until a point in time virtual copy operation is committed to the cache; recording the mapping defined by the point in time virtual copy operation; tying the record to the first level; creating a second level of the cache; writing subsequent writes to the second level of the cache.

28. A method of data storage as claimed in claim 26 , wherein a plurality of point in time virtual copy operations are tied to a single level provided the point in time virtual copy operations do not conflict with any intervening writes to the cache.

29. A method of data storage as claimed in claim 25 , wherein the point in time virtual copy operation is a snapshot copy operation.

30. A method of data storage as claimed in claim 25 , wherein the point in time virtual copy operation is a flash copy operation.

31. A method of data storage as claimed in claim 22 , including the steps of: receiving a read request in the cache; searching a first level of the cache for the read; applying the address mapping for the next level to the read request; searching the next level of the cache; continuing the search through subsequent levels of the cache; and terminating the search when the read is found.

32. A method of data storage as claimed in claim 31 , including the step of remapping a read request by applying all the address mappings of the levels of the cache to the read request and applying the remapped read request to an underlying storage system.

33. A method of data storage as claimed in claim 22 , wherein the method includes deleting a level of the cache including destaging data from the level to underlying storage devices.

34. A method of data storage as claimed in claim 22 , including the steps of: destaging data from the lowest level of the cache to an underlying storage system; applying the address mapping for the lowest level to the underlying storage system; deleting the lowest level of the cache.

35. A method of data storage as claimed in claim 22 , wherein the data storage is arranged as a log structured array storage subsystem including a write-back cache.

36. A computer program product stored on a computer readable storage medium, comprising computer readable program code means for performing the steps of reading and writing data to a cache having a variable number of levels, recording and applying an address mapping between each level of the cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2006
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: XYRATEX TECHNOLOGY LIMITED
Reel/Frame 018688/0901 →