IP Library Granted Patent US 8,832,528
Granted Patent B2
US 8,832,528 · App. 13/321,484 · Granted Sep 9, 2014

Apparatus, system, and method to increase data integrity in a redundant storage system

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 8,832,528
App. No.
13/321,484
Granted
Sep 9, 2014
Kind
B2
Abstract

In various embodiments, an apparatus, system, and method may increase data integrity in a redundant storage system. In one embodiment, a request is received for data stored at a storage system having a plurality of storage elements, where one or more of the plurality of storage elements include parity information. A determination is made that one of the plurality of storage elements is unavailable, the unavailable storage element being a functional storage element and including at least a portion of the data. Responsive to the determination, the data is reconstructed based on at least a portion of the parity information and data from one or more of the plurality of storage elements other than the unavailable storage element; a response is provided to the request such that the response includes the reconstructed data.

Claims (40)

1. A method, comprising:

receiving a request for data stored at a storage system having a plurality of storage elements, wherein one or more of the plurality of storage elements include parity information;

determining that one of the plurality of storage elements is unavailable, wherein the unavailable storage element is a functional storage element and includes at least a portion of the data;

responsive to the determining:

reconstructing the data based on at least a portion of the parity information and data from one or more of the plurality of storage elements other than the unavailable storage element; and

providing a response to the request, wherein the response includes the reconstructed data.

2. The method of claim 1 , wherein the plurality of storage elements are solid-state storage dies configured into one or more storage arrays.

3. The method of claim 2 , wherein the reconstructed data is an error correcting code (ECC) chunk, and wherein the portion of the parity information is generated from the ECC chunk.

4. The method of claim 1 , further comprising:

implementing a redundant array of independent drives (RAID) configuration across the plurality of storage elements, wherein implementing the RAID configuration includes generating and storing the parity information.

5. The method of claim 4 , wherein the RAID configuration is implemented in a manner that supports a particular number of storage element failures without data loss, and wherein the method further comprises:

determining that a number of failed storage elements satisfies a threshold associated with the particular number; and

responsive to the determining, reconfiguring data in the plurality of storage elements such that a RAID stripe of the RAID configuration supports a greater number of storage element failures than the particular number.

6. The method of claim 1 , further comprising:

tracking ones of the plurality of storage elements determined to be unavailable including maintaining a log file.

7. The method of claim 1 , wherein the storage system includes a plurality of regions, and wherein the method further comprises:

organizing data based on performance requirements relative to a number of available storage elements within a given region.

8. An apparatus, comprising:

an availability module configured to identify at least a portion of a functional storage element as being unavailable;

a data regeneration module configured to regenerate data of the functional storage element based on data and parity information in one or more storage elements included within a storage array that includes the functional storage element; and

wherein the availability module and the data regeneration module are hardware circuits or memories having program instructions stored therein.

9. The apparatus of claim 8 , wherein the apparatus is configured to service a request for data from another, available portion of the functional storage element.

10. The apparatus of claim 8 , wherein the parity information supports failure of a particular number of storage elements, and wherein the apparatus further comprises:

a data reconfiguration module configured to reconfigure data within the storage array such that the parity information supports failure of an additional storage element, wherein the data reconfiguration module is a hardware circuit or memory having program instructions stored therein.

11. The apparatus of claim 8 , wherein the apparatus is configured to store an error correcting code (ECC) in the storage array, wherein the ECC corresponds to data within the portion and is distinct from the parity information; and

wherein the availability module is configured to identify the portion as being unavailable based on the ECC.

12. The apparatus of claim 11 , wherein the apparatus is configured to:

generate an additional ECC from the regenerated data and the data in the one or more storage elements; and

store, within the storage array, the additional ECC and the regenerated data.

13. The apparatus of claim 12 , wherein the apparatus is configured to store the portions of an ECC chunk including the additional ECC and the regenerated in separate erase blocks within the storage array.

14. The apparatus of claim 8 , wherein the apparatus is configured to write data sequentially to storage elements within the storage array at an append point.

15. An apparatus, comprising:

a plurality of solid-state storage dies configured to implement a storage array that includes data and striped parity information corresponding to the data; and

a data regeneration module configured to regenerate data from an unavailable one of the plurality of solid-state storage dies based on the striped parity information and data from one or more available ones of the plurality of solid-state storage dies; and

wherein the data regeneration module is a hardware circuit or memory having program instructions stored therein.

16. The apparatus of claim 15 , wherein the plurality of solid-state storage dies are within two or more vertically stacked chips.

17. The apparatus of claim 15 , wherein the apparatus is configured to track a number of unavailable storage dies, and to reconfigure the striped parity information in response to the number of unavailable storage dies satisfying a threshold.

18. The apparatus of claim 15 , wherein the apparatus is configured to receive a user input specifying that the storage die is unavailable.

19. The apparatus of claim 15 , wherein the apparatus is configured to determine that the storage die is unavailable based on a number of read operations or a number of write operations performed to the storage die.

20. The apparatus of claim 15 , wherein the data regeneration module is configured to perform regenerating the data in conjunction with performing a garbage collection process.

Assignments (15)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 053654 FRAME: 0254. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 15, 2021
From: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 058134/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Nov 15, 2021
From: UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 058223/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: ACACIA RESEARCH GROUP LLC
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 052096/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
To: ACACIA RESEARCH GROUP LLC
Reel/Frame 052095/0903 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT DOCUMENT FILED PREVIOUSLY RECORDED ON REEL 047702 FRAME 0413. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 16, 2019
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
Reel/Frame 048918/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2018
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES LIMITED
Reel/Frame 047702/0413 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038362/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2014
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033419/0748 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033390/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2012
From: THATCHER, JONATHAN; FLYNN, DAVID; AUNE, JOSHUA; FILLINGIM, JEREMY; INSKEEP, BILL; STRASSER, JOHN; VIGOR, KEVIN
To: FUSION-IO, INC.
Reel/Frame 027652/0328 →