IP Library Granted Patent US 10,289,491
Granted Patent B1
US 10,289,491 · App. 15/581,431 · Granted May 14, 2019

Method and system for implementing multi-dimensional raid in an extensible storage array to optimize performance

Inventors: Grace Ho (Sunnyvale, CA); James Yarbrough (San Fransisco, CA)
Assignee: EMC IP Holding Company LLC
G06F11/1096G06F3/065G06F3/0619G06F3/0685G06F11/2094G06F2201/85
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 10,289,491
App. No.
15/581,431
Granted
May 14, 2019
Kind
B1
Abstract

In general, embodiments of the technology relate to a method for storing data. More specifically, the method may include selecting a first RAID grid location in a RAID grid, where the first RAID grid location is flagged, selecting a second RAID grid location in the RAID grid, making a first determination that the second RAID grid location is not flagged, in response to the first determination, loading first data associated with the second RAID grid location into a cache, calculating a parity value for a corresponding set of RAID grid locations in a data grid using the first data in the cache, where the first RAID grid location and the second RAID grid location are in the set of RAID grid locations, and storing at least a copy of the first data and the parity value in a storage array comprising persistent storage.

Claims (80)

1. A method for storing data comprising:

selecting a first RAID grid location in a RAID grid, wherein the first RAID grid location is flagged;

selecting a second RAID grid location in the RAID grid;

making a first determination that the second RAID grid location is not flagged;

in response to the first determination, loading first data associated with the second RAID grid location into a cache;

calculating a parity value for a corresponding set of RAID grid locations in a data grid using the first data in the cache, wherein the first RAID grid location and the second RAID grid location are in the set of RAID grid locations; and

storing at least a copy of the first data and the parity value in a storage array comprising persistent storage;

wherein prior to selecting the first RAID grid location:

identifying a set of storage modules that are present in the storage array;

making a second determination that at least one storage module is not present in the storage array;

in response to the second determination:

specifying that the first RAID grid location is a RAID grid location that is not associated with any of the set of storage modules; and

in response to the specifying, associating the first RAID grid location with a flag.

2. The method of claim 1 , further comprising:

selecting a third RAID grid location in the RAID grid

making a second determination that the third RAID grid location is flagged;

in response to the second determination, generating tracking information specifying that the third RAID grid location is flagged;

selecting a fourth RAID grid location in the RAID grid;

making a third determination that the fourth RAID grid location is not flagged;

in response to the third determination, loading third data associated with the fourth RAID grid location into the cache;

calculating a second parity value for a corresponding second set of RAID grid locations in the data grid using the second data in the cache and the tracking information, wherein the third RAID grid location and the fourth RAID grid location are in the second set of RAID grid locations; and

storing at least a copy of the second data and the second parity value in the storage.

3. The method of claim 2 , wherein the second parity value is a Q parity value.

4. The method of claim 1 , wherein the second RAID grid location is associated with a physical location in a storage module of the set of storage modules in the storage array.

5. The method of claim 1 , wherein the first parity value is a P parity value.

6. The method of claim 1 , wherein the persistent storage is solid state memory.

7. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to:

select a first RAID grid location in a RAID grid, wherein the first RAID grid location is flagged;

select a second RAID grid location in the RAID grid;

make a first determination that the second RAID grid location is not flagged;

in response to the first determination, load first data associated with the second RAID grid location into a cache;

calculate a parity value for a corresponding set of RAID grid locations in a data grid using the first data in the cache, wherein the first RAID grid location and the second RAID grid location are in the set of RAID grid locations; and

store at least a copy of the first data and the parity value in a storage array comprising persistent storage;

wherein prior to selecting the first RAID grid location:

identify a set of storage modules that are present in the storage array;

make a second determination that at least one storage module is not present in the storage array;

in response to the second determination,

specify that the first RAID grid location is a RAID grid location that is not associated with any of the set of storage modules; and

in response to the specifying, associate the first RAID grid location with a flag.

8. The non-transitory computer readable medium of claim 7 further comprising computer readable program code, which when executed by the computer processor enables the computer processor to:

select a third RAID grid location in the RAID grid;

make a second determination that the third RAID grid location is flagged;

in response to the second determination, generate tracking information specifying that the third RAID grid location is flagged;

select a fourth RAID grid location in the RAID grid;

make a third determination that the fourth RAID grid location is not flagged;

in response to the third determination, load third data associated with the fourth RAID grid location into the cache;

calculate a second parity value for a corresponding second set of RAID grid locations in the data grid using the second data in the cache and the tracking information, wherein the third RAID grid location and the fourth RAID grid location are in the second set of RAID grid locations; and

store at least a copy of the second data and the second parity value in the storage.

9. The non-transitory computer readable medium of claim 8 , wherein the second parity value is a Q parity value.

10. The non-transitory computer readable medium of claim 7 , wherein the second RAID grid location is associated with a physical location in a storage module of the set of storage modules in the storage array.

11. The non-transitory computer readable medium of claim 7 , wherein the first parity value is a P parity value.

12. The non-transitory computer readable medium of claim 7 , wherein the persistent storage is solid state memory.

13. A system comprising:

a persistent storage;

a processor;

a non-transitory computer readable medium comprising computer readable program code, which when executed by the processor enables the processor to:

select a first RAID grid location in a RAID grid, wherein the first RAID grid location is flagged;

select a second RAID grid location in the RAID grid;

make a first determination that the second RAID grid location is not flagged;

in response to the first determination, load first data associated with the second RAID grid location into a cache;

calculate a parity value for a corresponding set of RAID grid locations in a data grid using the first data in the cache, wherein the first RAID grid location and the second RAID grid location are in the set of RAID grid locations; and

store at least a copy of the first data and the parity value in a storage array comprising persistent storage;

wherein prior to selecting the first RAID grid location:

identify a set of storage modules that are present in the storage array;

make a second determination that at least one storage module is not present in the storage array;

in response to the second determination,

specify that the first RAID grid location is a RAID grid location that is not associated with any of the set of storage modules; and

in response to the specifying, associate the first RAID grid location with a flag.

14. The system of claim 13 , further comprising computer readable program code, which when executed by the computer processor enables the computer processor to:

select a third RAID grid location in the RAID grid;

make a second determination that the third RAID grid location is flagged;

in response to the second determination, generate tracking information specifying that the third RAID grid location is flagged;

select a fourth RAID grid location in the RAID grid;

make a third determination that the fourth RAID grid location is not flagged;

in response to the third determination, load third data associated with the fourth RAID grid location into the cache;

calculate a second parity value for a corresponding second set of RAID grid locations in the data grid using the second data in the cache and the tracking information, wherein the third RAID grid location and the fourth RAID grid location are in the second set of RAID grid locations; and

store at least a copy of the second data and the second parity value in the storage.

15. The system of claim 14 , wherein the second parity value is a Q parity value.

16. The system of claim 13 , wherein the second RAID grid location is associated with a physical location in a storage module of the set of storage modules in the storage array.

17. The system of claim 13 , wherein the first parity value is a P parity value.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2017
From: HO, GRACE; YARBROUGH, JAMES
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044454/0128 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
Cited By (1)
US 12,554,443