SSD Parity Offloading for Multi-Node RAID Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Performing parity checks by hosts or compute nodes in RAID systems is resource-intensive, slowing down system performance and impacting overall efficiency and throughput due to significant processing power and bandwidth demands during data and parity calculations.
Innovation Solution
Offload parity checking operations to non-volatile memory devices within a RAID group, reducing computational load on primary processors and enhancing data throughput by distributing parity calculations across multiple SSDs, using XOR operations and Galois Field arithmetic to maintain data integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If parity checks are performed by hosts or compute nodes in RAID systems, then data integrity is maintained, but CPU usage and DRAM bandwidth increase significantly
Solution Approach 1:
The patent extracts the parity calculation function from the host compute node and relocates it to the storage devices themselves. Each storage device independently calculates its portion of the parity data using XOR operations on received data segments, then transmits only the intermediate parity results to a designated parity storage device. This extraction eliminates the need for the host to perform computationally intensive parity calculations, significantly reducing CPU usage and DRAM bandwidth consumption while maintaining data integrity through distributed parity computation across the storage array.
2Ease of operation
If parity calculations are centralized at the host, then coordination is simplified, but system throughput decreases due to processing bottlenecks
Solution Approach 1:
The patent segments the centralized parity calculation task into distributed sub-tasks performed by individual storage devices. Each storage device independently computes intermediate parity data for its assigned data segments using XOR operations, then transmits results to a parity storage device which performs a final XOR operation to generate the complete parity data. This segmentation parallelizes the computation across multiple devices, eliminating the host processing bottleneck and increasing system throughput while maintaining coordination through standardized XOR operations and a designated parity storage device.
3Use of energy by moving object
If multiple storage devices perform parity calculations, then computational load is distributed, but communication overhead increases
Solution Approach 1:
The patent uses copying to minimize communication overhead in the distributed parity calculation system. The compute node transmits each data segment to multiple storage devices that need it for their parity calculations. Storage devices receive copies of the necessary data segments and independently perform XOR operations to generate intermediate parity results. Only these intermediate parity results (not the entire data sets) are transmitted to the parity storage device, significantly reducing the volume of communication traffic compared to centralized approaches while maintaining efficient load distribution across devices.
Data Source
AI summary
Various examples, controllers and methods are disclosed relating to parity checking. One controller can receive a plurality of data segments from a compute node via an interface. Further, the controller can determine at least one intermediate parity based on performing at least one XOR operation of the plurality of data segments, the at least one intermediate parity being stored in at least one device buffer of the first storage device. Further, the controller can transmit the at least one intermediate parity of the at least one device buffer to at least one parity storage device, wherein the at least one intermediate parity corresponds to one of a plurality of intermediate parities used to determine at least one partial parity of a redundant array of independent disk (RAID) volume. Further, the controller can store the plurality of data segments in at least the first storage device and a second storage device.


