System and method for data error recovery in a solid state subsystem
First Claim
1. A storage subsystem comprising:
- a non-volatile storage media comprising a plurality of data stripes, wherein a storage capacity of each of the plurality of data stripes is a defined size;
a volatile storage media for temporarily storing data to be written to the non-volatile storage media; and
a controller configured toclose each data stripe from the plurality of stripes when the quantity of data written to the data stripe corresponds to the storage capacity for the data stripe,detect an occurrence of a data access error in a first data stripe from the plurality of data stripes, wherein the first data stripe comprises a data stripe with less data written to the data stripe than the defined size for the data stripe; and
in response to detecting an occurrence of the data access error, close the first data stripe prior to the quantity of data written to the first data stripe corresponding to the storage capacity of the first data stripe.
10 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for recovering from a data access error encountered in data stripes implemented in a data redundancy scheme (e.g., RAID) in a solid state storage device. In one embodiment, the storage device holds parity data in a temporary, volatile memory such as a RAM and writes the parity data to the non-volatile memory when a full stripe'"'"'s worth of new write data has been written to the non-volatile memory. In one embodiment, upon detecting that a data access error has occurred in a partially written stripe, the storage device initiates a write of the parity data for the partially written stripe to the non-volatile memory and executes a RAID recovery procedure using the newly written parity data to attempt to recover from the detected error. This approach allows for a recovery from the data access error without waiting for the full stripe to be written.
-
Citations
20 Claims
-
1. A storage subsystem comprising:
-
a non-volatile storage media comprising a plurality of data stripes, wherein a storage capacity of each of the plurality of data stripes is a defined size; a volatile storage media for temporarily storing data to be written to the non-volatile storage media; and a controller configured to close each data stripe from the plurality of stripes when the quantity of data written to the data stripe corresponds to the storage capacity for the data stripe, detect an occurrence of a data access error in a first data stripe from the plurality of data stripes, wherein the first data stripe comprises a data stripe with less data written to the data stripe than the defined size for the data stripe; and in response to detecting an occurrence of the data access error, close the first data stripe prior to the quantity of data written to the first data stripe corresponding to the storage capacity of the first data stripe. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of recovering from a data access error in a storage subsystem, the method comprising:
-
storing, in a volatile storage of a storage subsystem, data to be written to a non-volatile storage of the storage subsystem, the non-volatile storage comprising a plurality of data stripes with a storage capacity of a defined size; detecting an occurrence of a data access error in a first data stripe from the plurality of data stripes, wherein the first data stripe comprises an open stripe; and in response to detecting the occurrence of the data access error, closing the first data stripe prior to the first data stripe storing a quantity of data corresponding to the defined size. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification