Storage system with incremental multi-dimensional RAID
First Claim
1. A method for storing data comprising:
- receiving a first request to write first data;
in response the first request, selecting, a first Redundant Array of Independent Disks (RAID) grid location in a first RAID grid to write the first data, wherein the first RAID grid location is in a first data grid in the first RAID grid;
writing the first data to memory;
updating a data structure to indicate that the first RAID grid location is filled;
identifying a first parity value in the first RAID grid to update in response to the first RAID grid location being filled, wherein the first parity value is associated with a second RAID grid location in the first RAID grid;
updating the first parity value using the first data and the first parity value to obtain an updated first parity value, wherein the updated first parity value is stored in the memory, and wherein the updated first parity value is associated with the second RAID grid location;
prior to the first data grid being filled;
determining a first physical address in persistent storage corresponding to the first RAID grid location;
writing the first data to a first physical location in persistent storage corresponding to the first physical address.
10 Assignments
0 Petitions
Accused Products
Abstract
A method for storing data including receiving a request to write data and in response the request, selecting a RAID grid location in a RAID grid to write the data. The method further includes writing the data to memory, updating a data structure to indicate that the RAID grid location is filled, identifying a parity value in the RAID grid to update, where the parity value is associated with a second RAID grid location in the RAID grid, updating the parity value using the data and the parity value to obtain an updated parity value and storing the updated parity value in the memory. Prior to the first data grid being filled determining a physical address in persistent storage corresponding to the RAID grid location and writing the data to the first physical address.
28 Citations
20 Claims
-
1. A method for storing data comprising:
-
receiving a first request to write first data; in response the first request, selecting, a first Redundant Array of Independent Disks (RAID) grid location in a first RAID grid to write the first data, wherein the first RAID grid location is in a first data grid in the first RAID grid; writing the first data to memory; updating a data structure to indicate that the first RAID grid location is filled; identifying a first parity value in the first RAID grid to update in response to the first RAID grid location being filled, wherein the first parity value is associated with a second RAID grid location in the first RAID grid; updating the first parity value using the first data and the first parity value to obtain an updated first parity value, wherein the updated first parity value is stored in the memory, and wherein the updated first parity value is associated with the second RAID grid location; prior to the first data grid being filled; determining a first physical address in persistent storage corresponding to the first RAID grid location; writing the first data to a first physical location in persistent storage corresponding to the first physical address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system, comprising:
-
a control module comprising; an Input/Output module (IOM); a processor; a first memory connected to the processor; a switch fabric, wherein the IOM and the processor are connected to the switch fabric; a first storage module connected to the control module using the switch fabric and comprising; a second memory; a first persistent storage; a second storage module connected to the control module using the switch fabric and comprising; a third memory; a second persistent storage; wherein the control module is configured to; receive a first request to write first data; in response the first request, select, a first Redundant Array of Independent Disks (RAID) grid location in a first RAID grid to write the first data, wherein the first RAID grid location is in a first data grid in the first RAID grid; write the first data to the second memory; update a data structure in the first memory to indicate that the first RAID grid location is filled; identify a first parity value in the first RAID grid to update in response to the first RAID grid location being filled, wherein the first parity value is associated with a second RAID grid location in the first RAID grid; update the first parity value using the first data and the first parity value to obtain an updated first parity value, wherein the updated first parity value is stored in the second memory, and wherein the updated first parity value is associated with the second RAID grid location; prior to the first data grid being filled; determine a first physical address in the first persistent storage corresponding to the first RAID grid location; write the first data to a first physical location in the first persistent storage corresponding to the first physical address. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method, the method comprising:
-
receiving a first request to write first data; in response the first request, selecting, a first Redundant Array of Independent Disks (RAID) grid location in a first RAID grid to write the first data, wherein the first RAID grid location is in a first data grid in the first RAID grid; writing the first data to memory; updating a data structure to indicate that the first RAID grid location is filled; identifying a first parity value in the first RAID grid to update in response to the first RAID grid location being filled, wherein the first parity value is associated with a second RAID grid location in the first RAID grid; updating the first parity value using the first data and the first parity value to obtain an updated first parity value, wherein the updated first parity value is stored in the memory, and wherein the updated first parity value is associated with the second RAID grid location; prior to the first data grid being filled; determining a first physical address in persistent storage corresponding to the first RAID grid location; writing the first data to a first physical location in persistent storage corresponding to the first physical address. - View Dependent Claims (20)
-
Specification