IP Library Granted Patent US 8,862,819
Granted Patent B2
US 8,862,819 · App. 13/638,096 · Granted Oct 14, 2014

Log structure array

Inventor: Doron Tal (Haifa, IL)
Assignee: Kaminario Technologies Ltd.
G06F13/00G06F3/0643G06F3/065G06F3/061G06F3/0685
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,862,819
App. No.
13/638,096
Granted
Oct 14, 2014
Kind
B2
Abstract

A storage system, comprising: (a) a primary storage entity utilized for persistently storing an entire data-set; (b) a secondary storage entity; and (c) a secondary storage controller (“SSC”) responsive to a destage stream pending to be written to the second storage entity for identifying a succession of physical locations on the secondary storage entity formed by non-protected locations in an extent that is sufficient to accommodate the destage stream and one or more intervening protected locations between two or more of the non-protected locations; wherein said SSC is adapted to retrieve from said primary storage entity protected data associated with the intervening protected location(s), pad the stream of data with the protected data and write the padded stream of data to said secondary storage entity as a single successive write sequence over said succession of physical locations.

Claims (55)

1. A storage system, comprising:

a primary storage entity utilized for persistently storing an entire data-set;

a secondary storage entity;

a secondary storage controller (“SSC”) responsive to a destage stream pending to be written to the second storage entity for identifying a sequential storage area on the secondary storage entity formed by non-protected locations in an extent that is sufficient to accommodate the destage stream and one or more intervening protected locations between two or more of the non-protected locations; and

said SSC is adapted to retrieve from said primary storage entity protected data associated with the intervening protected location(s), pad the stream of data with the protected data and write the padded stream of data to said secondary storage entity as a single successive write sequence over said sequential storage area.

2. The system according to claim 1 , wherein said primary storage entity is used for servicing PO's addressed to the storage system and said secondary storage entity is utilized for storing a copy of at least a portion of the data set within the first storage entity.

3. The system according to claim 1 , wherein said primary storage entity is characterized by relatively fast I/O performance and said secondary storage entity is characterized by relatively slow I/O performance.

4. The system according to claim 1 , wherein said primary storage entity is characterized by relatively fast I/O performance, particularly when servicing random access (“RA”) I/Os, and the secondary storage entity's performance is particularly poor when servicing RA I/Os.

5. The system according to claim 1 , wherein an aggregate size of said non-protected storage locations is large enough to accommodate the storage of the stream of data blocks.

6. The system according to claim 1 , wherein said SSC is adapted to search for said sequential storage area ahead of a current location position or ahead of a last known position of a read/write mechanism of said secondary storage entity.

7. The system according to claim 1 , wherein during normal operation of said storage system, said secondary storage entity is addressed with write requests only.

8. The system according to claim 1 , wherein said SSC is configured to implement a log structured file system (“LFS”) for managing data stored on said secondary storage entity.

9. The system according to claim 1 , wherein said primary storage entity comprises a plurality of data retention devices and the data set is distributed across the plurality of data retention devices.

10. The system according to claim 1 , wherein said primary storage entity comprises a single data retention device.

11. The system according to claim 1 , wherein said secondary storage entity comprises a single data retention device.

12. The system according to claim 1 , wherein said SSC is configured to position the protected data at the start or at the end of the padded stream, thereby causing the protected data to be repositioned within said secondary storage entity.

13. The system according to claim 6 , wherein said SSC is adapted to search for a sequential storage area within which a density of protected data is below a certain threshold.

14. The system according to claim 5 , wherein said SSC is adapted to search for a sequential storage area within which a density of protected data is lowest relative to other areas within which an aggregate size of non-protected storage locations is large enough to accommodate the storage of the stream of data blocks.

15. The system according to claim 1 , wherein said SSC is adapted to conduct a search for said sequential storage area starting at any point within said secondary storage entity, and in any direction relative to a current location or a last known position of a read/write mechanism of said secondary storage entity.

16. A method for managing a multilayered storage system, the method comprising:

identifying on a secondary storage entity a sequential storage area formed by: (a) non-protected locations in an extent that is sufficient to accommodate a destage stream that is pending to be written to the second storage entity; and (b) one or more intervening protected locations between two or more of the non-protected locations;

retrieving protected data associated with the one or more intervening protected location from a primary storage entity that is utilized for persistently storing an entire data-set;

padding the stream of data with the protected data; and

writing the padded stream of data to the secondary storage entity as a single successive write sequence over the succession of physical locations.

17. The method according to claim 16 , wherein the retrieving comprises retrieving the protected data from the primary storage entity which is used for servicing PO's addressed to the storage system, and wherein the writing comprises writing the padded stream of data to the secondary storage entity which is utilized for storing a copy of at least a portion of the data set within the first storage entity.

18. The method according to claim 16 , wherein the retrieving comprises retrieving the protected data from the primary storage entity which is characterized by relatively fast I/O performance; and wherein the writing comprises writing the padded stream of data to the secondary storage entity which is characterized by relatively slow I/O performance.

19. The method according to claim 18 , wherein the retrieving comprises retrieving the protected data from the primary storage entity which is characterized by relatively fast I/O performance, particularly when servicing random access (“RA”) I/Os, and wherein the writing comprises writing the padded stream of data to the secondary storage entity whose performance is particularly poor when servicing RA I/Os.

20. The method according to claim 18 , wherein the identifying comprises identifying the succession of physical locations so that an aggregate size of said non-protected storage locations is large enough to accommodate the storage of the stream of data blocks.

21. The method according to claim 16 , comprising searching for said sequential storage area ahead of a current location position or ahead of a last known position of a read/write mechanism of said secondary storage entity.

22. The method according to claim 16 , further comprising managing data stored on the secondary storage entity by implementing a log structured file method (“LFS”).

23. The method according to claim 16 , wherein the retrieving comprises retrieving the protected data from the primary storage entity that comprises a plurality of data retention devices and the data set is distributed across the plurality of data retention devices.

24. The method according to claim 16 , wherein the retrieving comprises retrieving the protected data from the primary storage entity that comprises a single data retention device.

25. The method according to claim 16 , wherein the writing comprises writing the padded stream of data to the secondary storage entity that comprises a single data retention device.

26. The method according to claim 16 , wherein the padding comprises positioning the protected data at the start or at the end of the padded stream, thereby causing the protected data to be repositioned within said secondary storage entity.

27. The method according to claim 21 , wherein the searching comprises searching for a sequential storage area within which a density of protected data is below a certain threshold.

28. The method according to claim 21 , wherein the searching comprises searching for a sequential storage area within which a density of protected data is lowest relative to other areas within which an aggregate size of non-protected storage locations is large enough to accommodate the storage of the stream of data blocks.

29. The method according to claim 16 , wherein the identifying comprises conducting the search for said sequential storage area starting at any point within said secondary storage entity, and in any direction relative to a current location or a last known position of a read/write mechanism of said secondary storage entity.

30. A computer readable storage medium having computer readable program embodied therein for managing a multilayered storage system, the computer readable code comprising instructions for:

identifying on a secondary storage entity a succession of physical locations formed by: (a) non-protected locations in an extent that is sufficient to accommodate a destage stream that is pending to be written to the second storage entity; and (b) one or more intervening protected locations between two or more of the non-protected locations;

retrieving protected data associated with the one or more intervening protected location from a primary storage entity that is utilized for persistently storing an entire data-set;

padding the stream of data with the protected data; and

writing the padded stream of data to the secondary storage entity as a single successive write sequence over the succession of physical locations.

31. The computer readable storage medium according to claim 30 , wherein the instructions for retrieving comprise instructions for retrieving the protected data from the primary storage entity which is used for servicing I/O's addressed to the storage system, and wherein the instructions for writing comprise instructions for writing the padded stream of data to the secondary storage entity which is utilized for storing a copy of at least a portion of the data set within the first storage entity.

32. The computer readable storage medium according to claim 30 , wherein the instructions for retrieving comprise instructions for retrieving the protected data from the primary storage entity which is characterized by relatively fast I/O performance; and wherein the instructions for writing comprise instructions for writing the padded stream of data to the secondary storage entity which is characterized by relatively slow I/O performance.

33. The computer readable storage medium according to claim 32 , wherein the instructions for retrieving comprise instructions for retrieving the protected data from the primary storage entity which is characterized by relatively fast I/O performance, particularly when servicing random access (“RA”) I/Os, and wherein the instructions for writing comprise instructions for writing the padded stream of data to the secondary storage entity whose performance is particularly poor when servicing RA I/Os.

34. The computer readable storage medium according to claim 30 , wherein the instructions for identifying comprise instructions for identifying the sequential storage area so that an aggregate size of said non-protected storage locations is large enough to accommodate the storage of the stream of data blocks.

35. The computer readable storage medium according to claim 30 , wherein the computer readable code comprising instructions for searching for said sequential storage area ahead of a current location position or ahead of a last known position of a read/write mechanism of said secondary storage entity.

36. The computer readable storage medium according to claim 30 , wherein the computer readable code further comprises managing data stored on the secondary storage entity by implementing a log structured file method (“LFS”).

37. The computer readable storage medium according to claim 30 , wherein the instructions for retrieving comprise instructions for retrieving the protected data from the primary storage entity that comprises a plurality of data retention devices and the data set is distributed across the plurality of data retention devices.

38. The computer readable storage medium according to claim 30 , wherein the instructions for retrieving comprise instructions for retrieving the protected data from the primary storage entity that comprises a single data retention device.

39. The computer readable storage medium according to claim 30 , wherein the instructions for writing comprise instructions for writing the padded stream of data to the secondary storage entity that comprises a single data retention device.

40. The computer readable storage medium according to claim 30 , wherein the instructions for padding comprise instructions for positioning the protected data at the start or at the end of the padded stream, thereby causing the protected data to be repositioned within said secondary storage entity.

41. The computer readable storage medium according to claim 35 , wherein the instructions for identifying comprise instructions for searching for a sequential storage area within which a density of protected data is below a certain threshold.

42. The computer readable storage medium according to claim 34 , wherein the instructions for identifying comprise instructions for searching for a sequential storage area within which a density of protected data is lowest relative to other areas within which an aggregate size of non-protected storage locations is large enough to accommodate the storage of the stream of data blocks.

43. The computer readable storage medium according to claim 30 , wherein the instructions for identifying comprise instructions for conducting the search for said sequential storage area starting at any point within said secondary storage entity, and in any direction relative to a current location or a last known position of a read/write mechanism of said secondary storage entity.

Assignments (6)
SECURITY INTEREST Recorded Nov 4, 2024
From: SILK TECHNOLOGIES INC.; THE SILK TECHNOLOGIES ILC LTD
To: TRINITY CAPITAL INC., AS COLLATERAL AGENT
Reel/Frame 069133/0868 →
SECURITY INTEREST Recorded Sep 19, 2023
From: THE SILK TECHNOLOGIES ILC LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 064945/0667 →
SECURITY INTEREST Recorded Sep 20, 2021
From: THE SILK TECHNOLOGIES ILC, LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 057523/0433 →
SECURITY INTEREST Recorded Jul 27, 2015
From: KAMINARIO TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 036180/0394 →
SECURITY AGREEMENT Recorded Jul 16, 2015
From: KAMINARIO TECHNOLOGIES LTD
To: SILICON VALLEY BANK
Reel/Frame 036125/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2012
From: DORON, TAL
To: KAMINARIO TECHNOLOGIES LTD.
Reel/Frame 029043/0709 →
Continuity (2)
Provisional Application 61319357 · Mar 31, 2010
Related Publication 20130024618A1 · Jan 24, 2013