System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
First Claim
1. A data storage system, comprising:
- a non-volatile memory array configured to store a plurality of data stripes; and
a controller configured to;
in response to detecting a failure event, create a partial data stripe that comprises (1) metadata that specifies which of data elements of the partial data stripe are valid, (2) parity data, and (3) both valid and invalid data elements; and
use the metadata to determine which data elements of the partial data stripe are valid.
6 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment of the invention, a flash-based/solid-state storage system with an implemented data redundancy scheme such as RAID is configured to hold parity data in a volatile memory such as RAM and write such parity data to the non-volatile flash media when a full stripe of data has been written to the media. Other embodiments in certain situations force an early write of the parity for a partial stripe that has not been fully written to the non-volatile media. Those situations may include a data access error on data in a partial stripe and a detected power loss event with a partial stripe present. Embodiments are directed to writing additional data with the parity data for the partial stripe and then later using the additional data in data recovery. This approach allows the controller to easily detect the presence of a partial stripe and handle such a stripe accordingly.
-
Citations
20 Claims
-
1. A data storage system, comprising:
-
a non-volatile memory array configured to store a plurality of data stripes; and a controller configured to; in response to detecting a failure event, create a partial data stripe that comprises (1) metadata that specifies which of data elements of the partial data stripe are valid, (2) parity data, and (3) both valid and invalid data elements; and use the metadata to determine which data elements of the partial data stripe are valid. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of recovering data stored in a data storage system, the method comprising:
-
in response to detecting a failure event, creating a partial data stripe that comprises (1) metadata that specifies which of data elements of the partial data stripe are valid, (2) parity data, and (3) both valid and invalid data elements; writing the partial data stripe to a non-volatile memory array; and using the metadata to determine which data elements of the partial data stripe are valid, wherein the method is performed by a controller of the data storage system. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification