Claims Analysis
Total Claims: 48
Claim 1
Independent Claim
178 words
A data storage subsystem, comprising: a plurality of storage devices configured in an array; and a storage controller coupled to said plurality of storage devices, wherein said storage controller is configured to store a first stripe of data as a first plurality of data stripe units across ones of said plurality of storage devices; wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; wherein, in response to a data modification operation, said storage controller is configured to receive a write transaction modifying a second stripe of data, and to store only said second stripe of data as a second plurality of data stripe units to new locations across said ones of said plurality of storage devices, wherein said second plurality of data stripe units includes a second plurality of data blocks, which is a subset of said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 2
Dependent Claim
178 words
A data storage subsystem, comprising: a plurality of storage devices configured in an array; and a storage controller coupled to said plurality of storage devices, wherein said storage controller is configured to store a first stripe of data as a first plurality of data stripe units across ones of said plurality of storage devices; wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; wherein, in response to a data modification operation, said storage controller is configured to receive a write transaction modifying a second stripe of data, and to store only said second stripe of data as a second plurality of data stripe units to new locations across said ones of said plurality of storage devices, wherein said second plurality of data stripe units includes a second plurality of data blocks, which is a subset of said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 3
Dependent Claim
62 words
The data storage subsystem as recited in claim 1 , wherein said storage controller is further configured to compute said second parity block for said second plurality of data blocks, which is a modified subset of said first plurality of data blocks, and to store said second plurality of data blocks and said second parity block to a plurality of new locations.
Claim 4
Dependent Claim
57 words
The data storage subsystem as recited in claim 2 , wherein each one of said plurality of storage devices includes a disk head unit configured for reading and writing data, and wherein said storage controller is further configured to select which ones of said plurality of new locations is closest in proximity to said disk head unit.
Claim 5
Dependent Claim
79 words
The data storage subsystem as recited in claim 1 , wherein said storage controller is further configured to maintain a free segment bitmap comprising: a listing of segments located on each one of said plurality of storage devices; an indication of whether each of said segments contains active data, or no data; and a current disk head position pointer configured to indicate the current position of a disk head unit on each one of said plurality of storage devices.
Claim 6
Dependent Claim
62 words
The data storage subsystem as recited in claim 4 , wherein said storage controller is further configured to calculate a disk head offset value for each one of said plurality of storage devices, wherein said disk head offset value represents a positive or negative offset from a theoretical position indicated by said current disk head position pointer in said free segment bitmap.
Claim 7
Dependent Claim
45 words
The data storage subsystem as recited in claim 4 , wherein said storage controller is further configured to maintain a block remapping table which maps a logical address for a data block to a first physical segment on one of said plurality of storage devices.
Claim 8
Dependent Claim
50 words
The data storage subsystem as recited in claim 6 , wherein said block remapping table further maps said first physical segment in a first parity group to a second physical segment which belongs to said first parity group and is stored on another one of said plurality of storage devices.
Claim 9
Dependent Claim
110 words
The data storage subsystem as recited in claim 7 , wherein said storage controller is further configured to remap a plurality of parity groups by: collecting a plurality of existing parity groups each one of which comprises a non-default number of data blocks stored across said storage devices; forming a plurality of new parity groups from said plurality of existing parity groups, wherein each one of said plurality of new parity groups comprises a default number of data blocks; calculating a plurality of new parity blocks for each one of said new parity groups; and storing each one of said plurality of new parity groups and said new parity blocks.
Claim 10
Dependent Claim
49 words
The data storage subsystem as recited in claim 8 , wherein said storage controller is further configured to maintain a plurality of versions of said plurality of existing parity groups which existed prior to a modification of ones of said data blocks in said plurality of existing parity groups.
Claim 11
Independent Claim
173 words
A method for storing data in a data storage subsystem including a plurality of storage devices configured in an array and a storage controller coupled to said plurality of storage devices, said method comprising: storing a first tripe of data as a first plurality of data stripe units across ones of a plurality of storage devices, wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; and in response to a data modification operation, receiving a write transaction modifying a second stripe of data, and storing only said second stripe of data as a second plurality of data stripe units to new locations across said ones of said plurality of storage devices; wherein said second plurality of data stripe units includes a second plurality of data blocks, which is a subset of said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 12
Independent Claim
173 words
A method for storing data in a data storage subsystem including a plurality of storage devices configured in an array and a storage controller coupled to said plurality of storage devices, said method comprising: storing a first tripe of data as a first plurality of data stripe units across ones of a plurality of storage devices, wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; and in response to a data modification operation, receiving a write transaction modifying a second stripe of data, and storing only said second stripe of data as a second plurality of data stripe units to new locations across said ones of said plurality of storage devices; wherein said second plurality of data stripe units includes a second plurality of data blocks, which is a subset of said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 13
Dependent Claim
57 words
The method as recited in claim 10 , wherein said method further comprises computing said second parity block for said second plurality of data blocks, which is a modified subset of said first plurality of data blocks, and to store said second plurality of data blocks and said second parity block to a plurality of new locations.
Claim 14
Dependent Claim
52 words
The method as recited in claim 11 , wherein each one of said plurality of storage devices includes a disk head unit configured for reading and writing data, and wherein said method further comprises selecting which ones of said plurality of new locations is closest in proximity to said disk head unit.
Claim 15
Dependent Claim
74 words
The method as recited in claim 12 , wherein said method further comprises maintaining a free segment bitmap comprising: a listing of segments located on each one of said plurality of storage devices; an indication of whether each of said segments contains active data, or no data; and a current disk head position pointer configured to indicate the current position of said disk head unit on each one of said plurality of storage devices.
Claim 16
Dependent Claim
57 words
The method as recited in claim 13 , wherein said method further comprises calculating a disk head offset value for each one of said plurality of storage devices, wherein said disk head offset value represents a positive or negative offset from a theoretical position indicated by said current disk head position pointer in said free segment bitmap.
Claim 17
Dependent Claim
40 words
The method as recited in claim 14 , wherein said method further comprises maintaining a block remapping table which maps a logical address of a data block to a first physical segment on one of said plurality of storage devices.
Claim 18
Dependent Claim
52 words
The method as recited in claim 14 , wherein said method further comprises said block remapping table further mapping said first physical segment in a first parity group to a second physical segment which belongs to said first parity group and is stored on another one of said plurality of storage devices.
Claim 19
Dependent Claim
104 words
The method as recited in claim 14 , wherein said method further comprises remapping a plurality of parity groups by: collecting a plurality of existing parity groups each one of which comprises a non-default number of data blocks stored across said storage devices; forming a plurality of new parity groups from said plurality of existing parity groups, wherein each one of said plurality of new parity groups comprises a default number of data blocks; calculating a plurality of new parity blocks for each one of said new parity groups; storing each one of said plurality of new parity groups and said new parity blocks.
Claim 20
Dependent Claim
44 words
The method as recited in claim 14 , wherein said method further comprises maintaining a plurality of versions of said plurality of existing parity groups which existed prior to a modification of ones of said data blocks in said plurality of existing parity groups.
Claim 21
Dependent Claim
212 words
A computer system, comprising: a processor, a bus bridge unit coupled to said processor, a memory coupled to said bus bridge unit; and a data storage subsystem coupled to said bus bridge unit, the data storage subsystem including: a plurality of storage devices configured in an array; and a storage controller coupled to said plurality of storage devices, wherein said storage controller is configured to store a first strip of data as a first plurality of data stripe units across ones of said plurality of storage devices; wherein said first plurality of data stripe unites includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; wherein, in response to a data modification operation, said storage controller is configured to receive a write transaction modifying a second stripe of data and to store only said second stripe of data as a second plurality of data stripe units to new locations across said ones of said plurality of storage devices; and wherein said second plurality of data stripe units includes a second plurality of data blocks, which is a subset of said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 22
Dependent Claim
212 words
A computer system, comprising: a processor, a bus bridge unit coupled to said processor, a memory coupled to said bus bridge unit; and a data storage subsystem coupled to said bus bridge unit, the data storage subsystem including: a plurality of storage devices configured in an array; and a storage controller coupled to said plurality of storage devices, wherein said storage controller is configured to store a first strip of data as a first plurality of data stripe units across ones of said plurality of storage devices; wherein said first plurality of data stripe unites includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; wherein, in response to a data modification operation, said storage controller is configured to receive a write transaction modifying a second stripe of data and to store only said second stripe of data as a second plurality of data stripe units to new locations across said ones of said plurality of storage devices; and wherein said second plurality of data stripe units includes a second plurality of data blocks, which is a subset of said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 23
Dependent Claim
61 words
The computer system as recited in claim 19 , wherein said storage controller is further configured to compute said second parity block for said second plurality of data blocks, which is a modified subset of said first plurality of data blocks, and to store said second plurality of data blocks and said second parity block to a plurality of new locations.
Claim 24
Dependent Claim
56 words
The computer system as recited in claim 20 , wherein each one of said plurality of storage devices includes a disk head unit configured for reading and writing data, and wherein said storage controller is further configured to select which ones of said plurality of new locations is closest in proximity to said disk head unit.
Claim 25
Dependent Claim
78 words
The computer system as recited in claim 19 , wherein said storage controller is further configured to maintain a free segment bitmap comprising: a listing of segments located on each one of said plurality of storage devices; an indication of whether each of said segments contains active data, or no data; and a current disk head position pointer configured to indicate the current position of a disk head unit on each one of said plurality of storage devices.
Claim 26
Dependent Claim
61 words
The computer system as recited in claim 22 , wherein said storage controller is further configured to calculate a disk head offset value for each one of said plurality of storage devices, wherein said disk head offset value represents a positive or negative offset from a theoretical position indicated by said current disk head position pointer in said free segment bitmap.
Claim 27
Dependent Claim
44 words
The computer system as recited in claim 22 , wherein said storage controller is further configured to maintain a block remapping table which maps a logical address of a data block to a first physical segment on one of said plurality of storage devices.
Claim 28
Dependent Claim
49 words
The computer system as recited in claim 24 , wherein said block remapping table further maps said first physical segment in a first parity group to a second physical segment which belongs to said first parity group and is stored on another one of said plurality of storage devices.
Claim 29
Dependent Claim
108 words
The computer system as recited in claim 25 , wherein said storage controller is further configured to remap a plurality of parity groups by: collecting a plurality of existing parity groups each one of which comprises a non-default number of data blocks stored across said storage devices; forming a plurality of new parity groups from said plurality of existing parity groups, wherein each one of said plurality of new parity groups comprises a default number of data blocks; calculating a plurality of new parity blocks for each one of said new parity groups; storing each one of said plurality of new parity groups and said new parity blocks.
Claim 30
Dependent Claim
48 words
The computer system as recited in claim 26 , wherein said storage controller is further configured to maintain a plurality of versions of said plurality of existing parity groups which existed prior to a modification of ones of said data blocks in said plurality of existing parity groups.
Claim 31
Dependent Claim
171 words
A data storage subsystem comprising: a plurality of storage devices configured in an array; and a storage controller coupled to said plurality of storage devices, wherein said storage controller is configured to store a first stripe of data as a first plurality of data stripe units across ones of said plurality of storage devices; wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; wherein said storage controller is configured to receive a write transaction modifying a subset of said first plurality of data blocks; wherein said storage controller is configured to calculate a new parity block for said subset of said first plurality of data blocks; wherein said storage controller is configured to only store said subset of said first plurality of data blocks modified by the write transaction and said new parity block as a new parity group to new locations across ones of said plurality of storage devices.
Claim 32
Dependent Claim
171 words
A data storage subsystem comprising: a plurality of storage devices configured in an array; and a storage controller coupled to said plurality of storage devices, wherein said storage controller is configured to store a first stripe of data as a first plurality of data stripe units across ones of said plurality of storage devices; wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; wherein said storage controller is configured to receive a write transaction modifying a subset of said first plurality of data blocks; wherein said storage controller is configured to calculate a new parity block for said subset of said first plurality of data blocks; wherein said storage controller is configured to only store said subset of said first plurality of data blocks modified by the write transaction and said new parity block as a new parity group to new locations across ones of said plurality of storage devices.
Claim 33
Dependent Claim
55 words
The data storage subsystem as recited in claim 28 , wherein each one of said plurality of storage devices includes a disk head unit configured for reading and writing data, and wherein said storage controller is further configured to select ones of a plurality of new locations closest in proximity to said disk head unit.
Claim 34
Dependent Claim
83 words
The data storage subsystem as recited in claim 28 , wherein said storage controller is further configured to store a second stripe of data as a second plurality of data stripe units across said ones of said plurality of storage devices, wherein said second plurality of data stripe units includes a second plurality of data blocks, which is different in number than said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 35
Dependent Claim
121 words
The data storage subsystem as recited in claim 28 , wherein said storage controller is further configured to remap a plurality of parity groups by: collecting a plurality of existing parity groups each one of which comprises a non-default number of data blocks stored across said storage devices; forming a plurality of new parity groups from said plurality of existing parity groups, wherein each one of said plurality of new parity groups comprises a default number of data blocks; calculating a plurality of new parity blocks for each one of said new parity groups; and storing each one of said plurality of new parity groups and said new parity blocks to new locations across ones of said plurality of storage devices.
Claim 36
Dependent Claim
49 words
The data storage subsystem as recited in claim 31 , wherein said storage controller is further configured to maintain a plurality of versions of said plurality of existing parity groups which existed prior to a modification of ones of said data blocks in said plurality of existing parity groups.
Claim 37
Independent Claim
153 words
A method for storing data in a data storage subsystem including a plurality of storage devices configured in an array and a storage controller coupled to said plurality of storage devices, said method comprising: storing a first stripe of data as a first plurality of data stripe units across ones of a plurality of storage devices; wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; receiving a write transaction modifying a subset of said first plurality of data blocks; calculating a new parity block for said subset of said first plurality of data blocks; and storing only said subset of said first plurality of data blocks modified by the write transaction and said new parity block as a new parity group to new locations across ones of said plurality of storage devices.
Claim 38
Independent Claim
153 words
A method for storing data in a data storage subsystem including a plurality of storage devices configured in an array and a storage controller coupled to said plurality of storage devices, said method comprising: storing a first stripe of data as a first plurality of data stripe units across ones of a plurality of storage devices; wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; receiving a write transaction modifying a subset of said first plurality of data blocks; calculating a new parity block for said subset of said first plurality of data blocks; and storing only said subset of said first plurality of data blocks modified by the write transaction and said new parity block as a new parity group to new locations across ones of said plurality of storage devices.
Claim 39
Dependent Claim
52 words
The method as recited in claim 33 , wherein each one of said plurality of storage devices includes a disk head unit configured for reading and writing data, and wherein said method further comprises selecting which ones of said plurality of new locations is closest in proximity to said disk head unit.
Claim 40
Dependent Claim
78 words
The method as recited in claim 34 , wherein said method further comprises storing a second stripe of data as a second plurality of data stripe units across said ones of said plurality of storage devices, wherein said second plurality of data stripe units includes a second plurality of data blocks, which is different in number than said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 41
Dependent Claim
116 words
The method as recited in claim 35 , wherein said method further comprises remapping a plurality of parity groups by: collecting a plurality of existing parity groups each one of which comprises a non-default number of data blocks stored across said storage devices; forming a plurality of new parity groups from said plurality of existing parity groups, wherein each one of said plurality of new parity groups comprises a default number of data blocks; calculating a plurality of new parity blocks for each one of said new parity groups; and storing each one of said plurality of new parity groups and said new parity blocks to new locations across ones of said plurality of storage devices.
Claim 42
Dependent Claim
44 words
The method as recited in claim 35 , wherein said method further comprises maintaining a plurality of versions of said plurality of existing parity groups which existed prior to a modification of ones of said data blocks in said plurality of existing parity groups.
Claim 43
Dependent Claim
205 words
A computer system comprising: a processor; a bus bridge unit coupled to said processor; a memory coupled to said bus bridge unit; and a data storage subsystem coupled to said bus bridge unit, the data storage subsystem including: a plurality of storage devices configured in an array; and a storage controller coupled to said plurality of storage devices, wherein said storage controller is configured to store a first stripe of data as a first plurality of data stripe units across ones of said plurality of storage devices, wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; and wherein said storage controller is configured to receive a write transaction modifying a subset of said first plurality of data blocks; wherein said storage controller is configured to calculate a new parity block for said subset of said first plurality of data blocks; wherein said storage controller is configured to only store said subset of said first plurality of data blocks modified by the write transaction and said new parity block as a new parity group to new locations across ones of said plurality of storage devices.
Claim 44
Dependent Claim
205 words
A computer system comprising: a processor; a bus bridge unit coupled to said processor; a memory coupled to said bus bridge unit; and a data storage subsystem coupled to said bus bridge unit, the data storage subsystem including: a plurality of storage devices configured in an array; and a storage controller coupled to said plurality of storage devices, wherein said storage controller is configured to store a first stripe of data as a first plurality of data stripe units across ones of said plurality of storage devices, wherein said first plurality of data stripe units includes a first plurality of data blocks and a first parity block which is calculated for said first plurality of data blocks; and wherein said storage controller is configured to receive a write transaction modifying a subset of said first plurality of data blocks; wherein said storage controller is configured to calculate a new parity block for said subset of said first plurality of data blocks; wherein said storage controller is configured to only store said subset of said first plurality of data blocks modified by the write transaction and said new parity block as a new parity group to new locations across ones of said plurality of storage devices.
Claim 45
Dependent Claim
54 words
The computer system as recited in claim 38 , wherein each one of said plurality of storage devices includes a disk head unit configured for reading and writing data, and wherein said storage controller is further configured to select ones of a plurality of new locations closest in proximity to said disk head unit.
Claim 46
Dependent Claim
82 words
The computer system as recited in claim 39 , wherein said storage controller is further configured to store a second stripe of data as a second plurality of data stripe units across said ones of said plurality of storage devices, wherein said second plurality of data stripe units includes a second plurality of data blocks, which is different in number than said first plurality of data blocks, and a second parity block which is calculated for said second plurality of data blocks.
Claim 47
Dependent Claim
120 words
The computer system as recited in claim 40 , wherein said storage controller is further configured to remap a plurality of parity groups by: collecting a plurality of existing parity groups each one of which comprises a non-default number of data blocks stored across said storage devices; forming a plurality of new parity groups from said plurality of existing parity groups, wherein each one of said plurality of new parity groups comprises a default number of data blocks; calculating a plurality of new parity blocks for each one of said new parity groups; and storing each one of said plurality of new parity groups and said new parity blocks to new locations across ones of said plurality of storage devices.
Claim 48
Dependent Claim
48 words
The computer system as recited in claim 41 , wherein said storage controller is further configured to maintain a plurality of versions of said plurality of existing parity groups which existed prior to a modification of ones of said data blocks in said plurality of existing parity groups.