IP Library Granted Patent US 7,293,156
Granted Patent B2
US 7,293,156 · App. 10/620,249 · Granted Nov 6, 2007

Distributed independent cache memory

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 7,293,156
App. No.
10/620,249
Granted
Nov 6, 2007
Kind
B2
Abstract

A system for transferring data to and from one or more slow-access-time-mass-storage nodes which store data at respective first ranges of logical block addresses (LBAs), including a plurality of interim-fast-access-time nodes which are configured to operate independently of one another. Each interim-fast-access-time node is assigned a respective second range of the LBAs and is coupled to receive data from and provide data to the one or more slow-access-time-mass-storage nodes within the respective second range. The system further includes one or more interface nodes, which are adapted to receive input/output (IO) requests from host processors directed to specified LBAs and to direct all the IO requests to the interim-fast-access-time node to which the specified LBAs are assigned.

Claims (114)

1. A storage system, comprising:

one or more slow-access-time-mass-storage nodes, coupled to store data at respective first ranges of logical block addresses (LBAs);

a plurality of interim-fast-access-time nodes, configured to operate independently of one another, each interim-fast-access-time node being assigned a respective second range of the LBAs and coupled to receive data from and provide data to the one or more slow-access-time-mass-storage nodes having LBAs within the respective second range, all of the second ranges of LBAs comprising a total LBA range; and

one or more interface nodes, which are adapted to receive input/output (IO) requests from host processors directed to specified LBAs and to direct all the IO requests to the interim-fast-access-time node to which the specified LBAs are assigned;

wherein each interim-fast-access-time nodes is configured to be reassignable to a new respective second range of the LBAs, all of the new respective second ranges of LBAs comprising the total LBA range.

2. A storage system according to claim 1 ,

wherein the one or more interface nodes comprise a mapping between the interim-fast-access-time nodes and the LBAs, and

wherein the one or more interface nodes are adapted to convert the IO requests to one or more requests and to direct the one or more requests to respective one or more interim-fast-access-time nodes in response to the mapping.

3. A storage system according to claim 2 , wherein the mapping comprises a function relating each specific interim-fast-access-time node of the plurality of interim-fast-access-time nodes to the respective second range of the LBAs.

4. A storage system according to claim 2 , wherein the mapping comprises a table relating each specific interim-fast-access-time node of the plurality of interim-fast-access-time nodes to the respective second range of the LBAs.

5. A storage system according to claim 2 ,

wherein the data is allocated into groups of data within the one or more slow-access-time-mass-storage nodes according to a pre-defined unit of the storage system comprising an integral number of bytes of the data, and

wherein the mapping comprises a correspondence between the interim-fast-access-time nodes and the groups of data.

6. A storage system according to claim 1 , wherein the one or more slow-access-time-mass-storage nodes comprise one or more disks, and wherein the interim-fast-access-time nodes comprise random access memories.

7. A storage system according to claim 1 , wherein the plurality of interim-fast-access-time nodes comprise respective location tables, wherein each location table comprises locations of the second range of the LBAs assigned to the respective interim-fast-access-time node.

8. A storage system according to claim 1 , wherein the respective second ranges are spread sufficiently evenly and finely so as to generate well-balanced loading for the plurality of interim-fast-access-time nodes.

9. A storage system according to claim 1 , wherein each of the plurality of interim-fast-access-time nodes are at an equal hierarchical level.

10. A storage system according to claim 1 , wherein the respective second ranges of the LBAs do not overlap.

11. A storage system according to claim 1 , wherein the one or more slow-access-time-mass-storage nodes comprise a multiplicity of slow-access-time-mass-storage nodes and the respective first ranges are spread sufficiently evenly and finely so as to generate well-balanced loading for the multiplicity.

12. A storage system according to claim 1 ,

wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and

wherein the first and second interim-fast-access-time nodes have substantially equal capacities.

13. A storage system according to claim 1 ,

wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and

wherein the first and second interim-fast-access-time nodes have different capacities.

14. A storage system according to claim 1 ,

wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and

wherein the one or more slow-access-time-mass-storage nodes comprise a first slow-access-time-mass-storage node which is coupled to only receive data from and provide data to the first interim-fast-access-time node and a second slow-access-time-mass-storage node which is coupled to only receive data from and provide data to the second interim-fast-access-time node.

15. A storage system according to claim 1 ,

wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and

wherein the one or more slow-access-time-mass-storage nodes comprise a first slow-access-time-mass-storage node and a second slow-access-time-mass-storage node which are coupled to receive data from and provide data to the first and the second interim-fast-access-time nodes.

16. A storage system according to claim 1 , wherein the interim-fast-access-time nodes are configured to be reassigned by a management node.

17. A storage system according to claim 1 , wherein the interim-fast-access-time nodes are configured to be reassigned based on a removal of at least one of the plurality of interim-fast-access-time nodes or one of the plurality of slow-access-time-mass-storage nodes.

18. A storage system according to claim 1 , wherein the interim-fast-access-line nodes are configured to be reassigned based on rebalancing a load between at least one of the plurality of interim-fast-access-time nodes or one of the plurality of slow-access-time-mass-storage nodes.

19. A storage system, comprising:

one or more slow-access-time-mass-storage nodes, coupled to store data at respective first ranges of logical block addresses (LBAs);

a plurality of interim-fast-access-time nodes, configured to operate independently of one another, each interim-fast-access-time node being assigned a respective second range of LBAs and coupled to receive data from and provide data to the one or more slow-access-time-mass-storage nodes having LBAs within the respective second range; and

one or more interface nodes, which are adapted to receive input/output (IO) requests from host processors directed to specified LBAs and to direct all the IO requests to the interim-fast-access-time node to which the specified LBAs are assigned;

wherein the plurality of interim-fast-access-time nodes comprise a first and a second interim-fast-access-time node, and

wherein at least some of the respective second ranges of the LBAs of the first and the second interim-fast-access-time nodes comprise overlapping LBAs, so that one of the first and the second interim-fast-access-time nodes is operative as a redundant interim-fast-access-time node.

20. A method for storing data, comprising:

storing the data in one or more slow-access-time-mass-storage nodes having respective first ranges of logical block addresses (LBAs);

assigning to each of a plurality of interim-fast-access-time nodes, configured to operate independently or one another, a respective second range of the LBAs, all of the second ranges of LBAs comprising a total LBA range;

coupling the plurality of interim-fast-access-time nodes to receive data from and provide data to the one or more slow-access-time-mass-storage nodes having LBAs within the respective second range;

receiving input/output (IO) requests from host processors directed to specified LBAs; and

directing all the IO requests to the interim-fast-access-time node to which the specified LBAs are assigned;

wherein the interim-fast-access-time nodes are configured to be reassignable to a new respective second range of the LBAs, all of the new respective second ranges of LBAs comprising the total LBA range.

21. A method according to claim 20 , wherein the IO requests are directed to one or more interface nodes, wherein the one or more interface nodes comprise a mapping between the interim-fast-access-time nodes and the LBAs, and wherein the one or more interface nodes are adapted to convert the IO requests to one or more LBA requests and to direct the one or more LBA requests to respective one or more interim-fast-access-time nodes in response to the mapping.

22. A method according to claim 21 , wherein the mapping comprises a function relating each specific interim-fast-access-time node of the plurality of interim-fast-access-time nodes to the respective second range of the LBAs.

23. A method according to claim 21 , wherein the mapping comprises a table relating each specific interim-fast-access-time node of the plurality of interim-fast-access-time nodes to the respective second range of the LBAs.

24. A method according to claim 21 , wherein the data is allocated into groups of data within the one or more slow-access-time-mass-storage nodes according to a pre-defined unit comprising an integral number of bytes of the data, and wherein the mapping comprises a correspondence between the interim-fast-access-time nodes and the groups of data.

25. A method according to claim 20 , wherein the one or more slow-access-time-mass-storage nodes comprise one or more disks, and wherein the interim-fast-access-time nodes comprise random access memories.

26. A method according to claim 20 , wherein the plurality of interim-fast-access-time nodes comprise respective location tables, wherein each location table comprises locations of the second range of die LBAs assigned to the respective interim-fast-access-time node.

27. A method according to claim 20 , wherein the respective second ranges are spread sufficiently evenly and finely so as to generate well-balanced loading for the plurality of interim-fast-access-time nodes.

28. A method according to claim 20 , wherein each of the plurality of interim-fast-access-time nodes are at an equal hierarchical level.

29. A method according to claim 20 , wherein the respective second ranges of the LBAs do not overlap.

30. A method according to claim 20 , wherein the one or more slow-access-time-mass-storage nodes comprise a multiplicity of slow-access-time-mass-storage nodes and the respective first ranges are spread sufficiently evenly and finely so as to generate well-balanced loading for the multiplicity.

31. A method according to claim 20 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the first and second interim-fast-access-time nodes have substantially equal capacities.

32. A method according to claim 20 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-dine node and a second interim-fast-access-time node, and wherein the first and second interim-fast-access-time nodes have different capacities.

33. A method according to claim 20 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the one or more slow-access-time-mass-storage nodes comprise a first slow-access-time-mass-storage node which is coupled to only receive data from and provide data to the first interim-fast-access-time node and a second slow-access-time-mass-storage node which is coupled to only receive data from and provide data to the second interim-fast-access-time node.

34. A method according to claim 20 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the one or more slow-access-time-mass-storage nodes comprise a first slow-access-time-mass-storage node and a second slow-access-time-mass-storage node which are coupled to receive data from and provide data to the first and the second interim-fast-access-time nodes.

35. A method for storing data, comprising:

storing the data in one or more slow-access-time-mass-storage nodes having respective first ranges of logical block addresses (LBAs), all of the first ranges of LBAS comprising a total LBA range;

assigning to each of a plurality of interim-fast-access-time nodes, configured to operate independently of one another, a respective second range of the LBAs, all of the second ranges of LBAs comprising the total LBA range;

coupling the plurality of interim-fast-access-time nodes to receive data from and provide data to the one or more slow-access-time-mass-storage nodes having LBAs within the respective second range;

receiving input/output (IO) requests from host processors directed to specified LBAs; and

directing all the IO requests to the interim-fast-access-time node to which the specified LBAs are assigned;

wherein the plurality of interim-fast-access-time nodes comprise a first and a second interim-fast-access-time node, and wherein at least some of the respective second ranges of the LBAs of the first and the second interim-fast-access-time nodes comprise overlapping LBAs, so that one of the first and second interim-fast-access-time nodes is operative as a redundant interim-fast-access-time node.

36. A system for transferring data to and from one or more slow-access-time-mass-storage nodes which store data at respective first ranges of logical block addresses (LBAs), comprising:

a plurality of interim-fast-access-time nodes, configured to operate independently of one another, each interim-fast-access-time node being assigned a respective second range of the LBAs and coupled to receive data from and provide data to the one or more slow-access-time-mass-storage nodes within the respective second range, all of the second ranges of LBAs comprising a total LBA range; and

one or more interface nodes, which are adapted to receive input/output (IO) requests from host processors directed to specified LBAs and to direct all the IO requests to the interim-fast-access-time node to which the specified LBAs are assigned;

wherein the interim-fast-access-time nodes are configured to be reassignable to a new respective second range of the LBAs, all of the new respective second ranges of LBAs comprising the total LBA range.

37. A system according to claim 36 , wherein the one or more interface nodes comprise a mapping between the interim-fast-access-time nodes and the LBAs, and wherein the one or more interface nodes are adapted to convert the IO requests to one or more requests and to direct the one or more requests to respective one or more interim-fast-access-time nodes in response to the mapping.

38. A system according to claim 37 , wherein the mapping comprises a function relating each specific interim-fast-access-time node of the plurality of interim-fast-access-time nodes to the respective second range of the LBAS.

39. A system according to claim 37 , wherein the mapping comprises a table relating each specific interim-fast-access-time node of the plurality of interim-fast-access-time nodes to the respective second range of the LBAs.

40. A system according to claim 37 , wherein the data is allocated into groups of data within the one or more slow-access-time-mass-storage nodes according to a pre-defined unit of the storage system comprising an integral number of bytes of the data, and wherein the mapping comprises a correspondence between the interim-fast-access-time nodes and the groups of data.

41. A system according to claim 36 , wherein the one or more slow access time-mass-storage nodes comprise one or more disks, and wherein the interim-fast-access-time nodes comprise random access memories.

42. A system according to claim 36 , wherein the plurality of interim-fast-access-time nodes comprise respective location tables, wherein each location table comprises locations of the second range of the LBAs assigned to the respective interim-fast-access-time node.

43. A system according to claim 36 , wherein the respective second ranges are spread sufficiently evenly and finely so as to generate well-balanced loading for the plurality of interim-fast-access-time nodes.

44. A system according to claim 36 , wherein each of the plurality of interim-fast-access-time nodes are at an equal hierarchical level.

45. A system according to claim 36 , wherein the respective second ranges of the LBAs do not overlap.

46. A system according to claim 36 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the first and second interim-fast-access-time nodes have substantially equal capacities.

47. A system according to claim 36 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the first and second interim-fast-access-time nodes have different capacities.

48. A system according to claim 36 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the one or more slow-access-time-mass-storage nodes comprise a first slow-access-line-mass-storage node which is coupled to only receive data from and provide data to the first interim-fast-access-time node and a second slow-access-time-mass-storage node which is coupled to only receive data from and provide data to the second interim-fast-access-time node.

49. A system according to claim 36 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the one or more slow-access-time-mass-storage nodes comprise a first slow-access-time-mass-storage node and a second slow-access-time-mass-storage node which are coupled to receive data from and provide data to the first and the second interim-fast-access-time nodes.

50. A system for transferring data to and from one or more slow-access-time-mass-storage nodes which store data at respective first ranges of logical block addresses (LBAs), comprising:

a plurality of interim-fast-access-time nodes, configured to operate independently of one another, each interim-fast-access-time node being assigned a respective second range of LBAs and coupled to receive data from and provide data to the one or more slow-access-time-mass-storage nodes within the respective second range; and

one or more interface nodes, which are adapted to receive input/output (IO) requests from host processors directed to specified LBAs and to direct all the IO requests to the interim-fast-access-time node to which the specified LBAs are assigned;

wherein the plurality of interim-fast-access-time nodes comprise a first and a second interim-fast-access-time node, and wherein at least some of the respective second ranges of the LBAs of the first and the second interim-fast-access-time nodes comprise overlapping LBAs, so that one of the first and the second interim-fast-access-time nodes is operative as a redundant interim-fast-access-time node.

51. A method for transferring data to and from one or more slow-access-time-mass-storage nodes which store data at respective first ranges of logical block addresses (LBAs), comprising:

assigning to a plurality of interim-fast-access-time nodes, configured to operate independently of one another, respective second ranges of the LBAs, all of the second ranges of LBAs comprising a total LBA range;

coupling the plurality of interim-fast-access-time nodes to receive data from and provide data to the one or more slow-access-time-mass-storage nodes having LBAs within the respective second ranges;

receiving input/output (IO) requests from host processors directed to specified LBAs; and

directing all the IO requests to the interim-fast-access-time node to which the specified LBAs ate assigned;

wherein the interim-fast-access-time nodes are configured to be reassignable to a new respective second range of the LBAs, all of the new respective second ranges of LBAs comprising the total LBA range.

52. A method according to claim 51 , wherein the IO requests are directed to one or more interface nodes, wherein the one or more interface nodes comprise a mapping between the interim-fast-access-time nodes and the LBAs, and wherein the one or more interface nodes are adapted to convert the IO requests to one or more LBA requests and to direct the one or more LBA requests to respective one or more interim-fast-access-time nodes in response to the mapping.

53. A method according to claim 52 , wherein the mapping comprises a function relating each specific interim-fast-access-time node of the plurality of interim-fast-access-time nodes to the respective second range of the LBAs.

54. A method according to claim 52 , wherein the mapping comprises a table relating each specific interim-fast-access-time node of the plurality of interim-fast-access-time nodes to the respective second range of the LBAs.

55. A method according to claim 52 , wherein the data is allocated into groups of data within the one or more stow-access-time-mass-storage nodes according to a pre-defined unit comprising an integral number of bytes of the data, and wherein the mapping comprises a correspondence between the interim-fast-access-time nodes and the groups of data.

56. A method according to claim 51 , wherein the one or more slow-access-time-mass-storage nodes comprise one or more disks, and wherein the interim-fast-access-time nodes comprise random access memories.

57. A method according to claim 51 , wherein the plurality of interim-fast-access-time nodes comprise respective location tables, wherein each location table comprises locations of the second range of the LBAs assigned to the respective interim-fast-access-time node.

58. A method according to claim 51 , wherein the respective second ranges are spread sufficiently evenly and finely so as to generate well-balanced loading for the plurality of interim-fast-access-time nodes.

59. A method according to claim 51 , wherein each of the plurality of interim-fast-access-time nodes are at an equal hierarchical level.

60. A method according to claim 51 , wherein the respective second ranges of the LBAs do not overlap.

61. A method according to claim 51 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the first and second interim-fast-access-time nodes have substantially equal capacities.

62. A method according to claim 51 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the first and second interim-fast-access-time nodes have different capacities.

63. A method according to claim 51 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the one or more slow-access-time-mass-storage nodes comprise a first slow-access-time-mass-storage node which is coupled to only receive data from and provide data to the first interim-fast-access-time node and a second slow-access-time-mass-storage node which is coupled to only receive data from and provide data to the second interim-fast-access-time node.

64. A method according to claim 51 , wherein the plurality of interim-fast-access-time nodes comprises a first interim-fast-access-time node and a second interim-fast-access-time node, and wherein the one or more slow-access-time-mass-storage nodes comprise a first slow-access-time-mass-storage node and a second slow-access-time-mass-storage node which are coupled to receive data from and provide data to the first and the second interim-fast-access-time nodes.

65. A method for transferring data to and from one or more slow-access-time-mass-storage nodes which store data at respective first ranges of logical block addresses (LBAs), comprising:

assigning to a plurality of interim-fast-access-time nodes, configured to operate independently of one another, respective second ranges of LBAs;

coupling the plurality of interim-fast-access-time nodes to receive data from and provide data to the one or more slow-access-time-mass-storage nodes having LBAs within the respective second ranges;

receiving input/output (IO) requests from host processors directed to specified LBAs; and

directing all the IO requests to the interim-fast-access-time node to which the specified LBAs are assigned;

wherein the plurality of interim-fast-access-time nodes comprise a first and a second interim-fast-access-time node, and wherein at least some of the respective second ranges of the LBAs of the first and the second interim-fast-access-time nodes comprise overlapping LBAs, so that one of the first and second interim-fast-access-time nodes is operative as a redundant interim-fast-access-time node.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2009
From: XIV LTD.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022368/0815 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2003
From: ZOHAR, OFIR; REVAH, YARON; HELMAN, HAIM; COHEN, DROR
To: XIV LTD.
Reel/Frame 014308/0419 →