Claims Analysis
Total Claims: 23
Claim 1
Independent Claim
251 words
A method of reconstructing data in a computer system employing a Parity RAID protection scheme for a striped array of storage devices that employ parity recovery in the event of a crash, said computer system including a write back cache composed of non-volatile memory for storing (1) write data outstanding that is to be written to storage devices, and (2) metadata information; said metadata information comprising a first field containing an LBA of said write data outstanding, a second field containing device IDs that correspond to said write data outstanding, and a third field containing status that indicates consistent or inconsistent write slice parity, comprising the steps of: storing old data in said non-volatile memory from storage devices that are intended for said write data outstanding, to protect said old data in the event a crash occurs during a write to a storage device; storing old parity that corresponds to said old data in said non-volatile memory; determining from said metadata information where a given write data outstanding was intended when a crash occurs; determining whether parity is consistent across a write slice corresponding to said given write data outstanding, and if parity is not consistent, using said old data stored in said non-volatile memory and said the old parity stored in said non-volatile memory to reconstruct said given write data outstanding to thereby insure consistent parity, whereby; only slices of said given write data outstanding whose parity is not consistent and are affected by the crash have to be reconstructed.
Claim 2
Independent Claim
251 words
A method of reconstructing data in a computer system employing a Parity RAID protection scheme for a striped array of storage devices that employ parity recovery in the event of a crash, said computer system including a write back cache composed of non-volatile memory for storing (1) write data outstanding that is to be written to storage devices, and (2) metadata information; said metadata information comprising a first field containing an LBA of said write data outstanding, a second field containing device IDs that correspond to said write data outstanding, and a third field containing status that indicates consistent or inconsistent write slice parity, comprising the steps of: storing old data in said non-volatile memory from storage devices that are intended for said write data outstanding, to protect said old data in the event a crash occurs during a write to a storage device; storing old parity that corresponds to said old data in said non-volatile memory; determining from said metadata information where a given write data outstanding was intended when a crash occurs; determining whether parity is consistent across a write slice corresponding to said given write data outstanding, and if parity is not consistent, using said old data stored in said non-volatile memory and said the old parity stored in said non-volatile memory to reconstruct said given write data outstanding to thereby insure consistent parity, whereby; only slices of said given write data outstanding whose parity is not consistent and are affected by the crash have to be reconstructed.
Claim 3
Dependent Claim
42 words
A method in accordance with claim 1 including the step of: storing said write data outstanding in said non-volatile memory; and marking said stored write data outstanding with indicia indicating that said stored write data outstanding is in a write hole state.
Claim 4
Dependent Claim
27 words
A method in accordance with claim 2, including the step of: marking said old data stored in said non-volatile memory as being in an old data state.
Claim 5
Dependent Claim
21 words
A method in accordance with claim 3, including the step of: writing said write data outstanding to a designated storage device.
Claim 6
Dependent Claim
36 words
A method in accordance with claim 4, wherein said step of writing said write data outstanding to a designated storage device occurs subsequent to said step of storing said write data outstanding in said non-volatile memory.
Claim 7
Dependent Claim
29 words
A method in accordance with claim 5, including the steps of: calculating a new parity for said write data outstanding; and writing said new parity to a storage device.
Claim 8
Dependent Claim
45 words
A method in accordance with claim 6 including the step of: subsequent to writing said write data outstanding and said new parity to a storage device, marking at least one of said old data, said write data outstanding or said old parity as parity valid.
Claim 9
Dependent Claim
39 words
A method in accordance with claim 7, including the step of: subsequent to said step of marking as parity valid, nulling out marks for other blocks that were not marked as parity valid by the step of claim 7.
Claim 10
Dependent Claim
29 words
A method in accordance with claim 8, including the step of: subsequent to the step set forth in claim 8, nulling out said parity valid mark of claim 7.
Claim 11
Dependent Claim
229 words
For use in connection with a computer system, a method of reconstructing data in a Parity RAID protection scheme for attachment to said computer system, a write back cache composed of non-volatile memory for storing (1) write data that is outstanding to a storage device and associated old data read from a storage device, and (2) metadata information; said metadata information comprising a first field containing a LBA of said outstanding write data, a second field containing a storage device ID corresponding to said outstanding write data, and a third field containing a parity consistent/inconsistent status of data in said non-volatile memory, comprising the steps of: determining from said metadata information a storage device for which said outstanding write data is intended; storing in said non-volatile memory associated old data from at least areas on storage devices intended for outstanding write data, to protect said associated old data in the event a crash occurs during a write of said outstaxidinrg write data to a storage device; determining whether parity is consistent across a data slice that includes said LBA, and if not using data stored in said non-volatile memory to reconstruct a write of said outstanding write data that was in progress when a crash occurred to insure consistent parity, whereby; only data slices that have inconsistent parity and that are affected by a crash have to be reconstructed.
Claim 12
Dependent Claim
229 words
For use in connection with a computer system, a method of reconstructing data in a Parity RAID protection scheme for attachment to said computer system, a write back cache composed of non-volatile memory for storing (1) write data that is outstanding to a storage device and associated old data read from a storage device, and (2) metadata information; said metadata information comprising a first field containing a LBA of said outstanding write data, a second field containing a storage device ID corresponding to said outstanding write data, and a third field containing a parity consistent/inconsistent status of data in said non-volatile memory, comprising the steps of: determining from said metadata information a storage device for which said outstanding write data is intended; storing in said non-volatile memory associated old data from at least areas on storage devices intended for outstanding write data, to protect said associated old data in the event a crash occurs during a write of said outstaxidinrg write data to a storage device; determining whether parity is consistent across a data slice that includes said LBA, and if not using data stored in said non-volatile memory to reconstruct a write of said outstanding write data that was in progress when a crash occurred to insure consistent parity, whereby; only data slices that have inconsistent parity and that are affected by a crash have to be reconstructed.
Claim 13
Dependent Claim
42 words
A method in accordance with claim 10 including the steps of: marking said write data that is outstanding to a storage device with indicia indicating that said write data that is outstanding to a storage device is in a write hole state.
Claim 14
Dependent Claim
28 words
A method in accordance with claim 11 including the step of: marking said associated old data storing in said non-volatile memory as being in an old data state.
Claim 15
Dependent Claim
27 words
A method in accordance with claim 12, including the step of: writing said write data that is outstanding to a storage device to a designated storage device.
Claim 16
Dependent Claim
35 words
A method in accordance with claim 13, including the steps of: calculating a new parity for said write data that is outstanding to a storage device; and writing said new parity to a storage device.
Claim 17
Dependent Claim
67 words
A method in accordance with claim 14 including the step of: subsequent to said step of writing said write data that is outstanding to a storage device to a designated storage device, and said step of writing said new parity to a storage device, marking at least one of said write data that is outstanding to a storage device or said new data as being parity valid.
Claim 18
Dependent Claim
33 words
A method in accordance with claim 15, including the step of: subsequent to said parity valid marking step as set forth in claim 15, marking null blocks that are not marked parity valid.
Claim 19
Dependent Claim
28 words
A method in accordance with claim 16, including the step of: subsequent to said marking null step as set forth in claim 16, nulling said parity valid marks.
Claim 20
Dependent Claim
231 words
In a computer system employing a Parity RAID protection scheme, and an array set of disk drives connected to said computer system, said disk drives containing data written thereon in a predetermined and proscribed format of data blocks: a controller having a write back cache composed of non-volatile memory, said non-volatile memory being disposed intermediate said array set of disk drives and said computer system; said non-volatile memory storing (1) data block writes outstanding to a disk drive, (2) associated data read from a disk drive, and (3) metadata information concerning information contained on said disk drives; said metadata information comprising a first field containing an LBA of the associated data read, a second field containing a disk drive ID, and a third field containing a block status of data blocks contained on said disk drives; a program contained within said controller for determining from said metadata information where a write is intended prior to a write being made to a disk drive of said array set; and means in said controller for determining whether parity is consistent across a slice of multiple data blocks written on a disk drive, and if not using data stored in said non-volatile memory to reconstruct a write to insure consistent parity, whereby reconstruction of data slices is necessary only for those slices on said set of disks drives for which inconsistent parity is determined.
Claim 21
Dependent Claim
231 words
In a computer system employing a Parity RAID protection scheme, and an array set of disk drives connected to said computer system, said disk drives containing data written thereon in a predetermined and proscribed format of data blocks: a controller having a write back cache composed of non-volatile memory, said non-volatile memory being disposed intermediate said array set of disk drives and said computer system; said non-volatile memory storing (1) data block writes outstanding to a disk drive, (2) associated data read from a disk drive, and (3) metadata information concerning information contained on said disk drives; said metadata information comprising a first field containing an LBA of the associated data read, a second field containing a disk drive ID, and a third field containing a block status of data blocks contained on said disk drives; a program contained within said controller for determining from said metadata information where a write is intended prior to a write being made to a disk drive of said array set; and means in said controller for determining whether parity is consistent across a slice of multiple data blocks written on a disk drive, and if not using data stored in said non-volatile memory to reconstruct a write to insure consistent parity, whereby reconstruction of data slices is necessary only for those slices on said set of disks drives for which inconsistent parity is determined.
Claim 22
Dependent Claim
237 words
In combination: a computer having a central processor; an array of disk drives comprising computer-readable disk memory having a surface formed with a plurality of binary patterns constituting an application program that is executable by said computer; a controller connected intermediate said array of disk drives and said central processor; said disk drive array in conjunction with said controller employing a Parity RAID protection scheme; a non-volatile cache contained within said controller; said controller effecting reading and writing of data blocks from and to said array of disk drives; said application program including instructions for a method of reconstructing data slices in said disk drive array; said application program including instructions for reading into said non-volatile cache (1) writes outstanding to a disk drive, (2) associated data read, and (3) metadata information concerning said disk drive array; said metadata information comprising a first field containing LBAs of data blocks, a second field containing disk drive IDs, and a third field containing data block status; said application program including instructions for determining from said metadata information to which disk drive a write is intended; said application program including instruction for determining whether parity is consistent across a data block slice, and if not using data in said non-volatile cache to construct or to reconstruct write data, when necessary, to insure consistent parity, whereby only data block slices effected by inconsistent parity will have to be constructed or reconstructed.
Claim 23
Dependent Claim
237 words
In combination: a computer having a central processor; an array of disk drives comprising computer-readable disk memory having a surface formed with a plurality of binary patterns constituting an application program that is executable by said computer; a controller connected intermediate said array of disk drives and said central processor; said disk drive array in conjunction with said controller employing a Parity RAID protection scheme; a non-volatile cache contained within said controller; said controller effecting reading and writing of data blocks from and to said array of disk drives; said application program including instructions for a method of reconstructing data slices in said disk drive array; said application program including instructions for reading into said non-volatile cache (1) writes outstanding to a disk drive, (2) associated data read, and (3) metadata information concerning said disk drive array; said metadata information comprising a first field containing LBAs of data blocks, a second field containing disk drive IDs, and a third field containing data block status; said application program including instructions for determining from said metadata information to which disk drive a write is intended; said application program including instruction for determining whether parity is consistent across a data block slice, and if not using data in said non-volatile cache to construct or to reconstruct write data, when necessary, to insure consistent parity, whereby only data block slices effected by inconsistent parity will have to be constructed or reconstructed.