Storage Drive Parity Generation Offload
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face increased processing loads due to the need for both data and parity management during write operations, requiring duplication of state management information across storage controllers, which can lead to inefficiencies and potential failures.
Innovation Solution
A storage system architecture where a controller offloads parity generation and data management to storage drives, using a flash memory package to manage sequence numbers and update parity data independently, reducing the need for redundant state management across controllers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the storage controller performs parity calculation and data management, then data integrity and redundancy are maintained, but the processing load on the storage controller increases
Solution Approach 1:
The patent extracts the parity calculation function from the storage controller and relocates it to the storage drive. The storage drive independently generates intermediate parity and updated parity, while the storage controller only manages data writing and reads. This extraction reduces the controller's processing load while maintaining data integrity through distributed parity management.
Solution Approach 2:
The patent segments the parity management process into two independent parts: (1) the storage drive handles intermediate parity generation and updated parity generation, and (2) the storage controller handles data writing and reading. This segmentation allows each component to specialize in specific tasks, improving overall system efficiency and reducing controller burden.
2Reliability
If the storage controller duplicates state management information for failure preparation, then system reliability is improved, but device complexity and memory requirements increase
Solution Approach 1:
The storage drive performs self-service by independently managing its own parity data and sequence numbers. It generates intermediate parity, manages updated parity, and tracks sequence numbers without requiring the storage controller to duplicate state management information. This self-service approach maintains reliability while reducing system complexity.
Solution Approach 2:
The storage drive performs preliminary parity generation (intermediate parity) before the storage controller completes the write operation. This preliminary action ensures that parity data is ready in advance, reducing the need for complex state management and duplication by the controller.
3Productivity
If the storage drive generates intermediate parity and manages sequence numbers independently, then write performance is improved, but the complexity of the storage drive increases
Solution Approach 1:
The patent introduces intermediate parity as a mediator between the storage drive and storage controller. The storage drive generates intermediate parity locally without requiring complex controller intervention, and the controller simply reads and transmits this intermediate parity to complete the write operation. This intermediary mechanism improves write performance while keeping the storage drive's complexity manageable.
4Reliability
If the storage controller transmits intermediate parity to complete the write operation, then data consistency is maintained, but communication overhead increases
Solution Approach 1:
The storage drive performs preliminary generation of intermediate parity and stores it locally before the storage controller completes the write operation. This preliminary action eliminates the need for time-consuming parity calculations during the critical write path, maintaining data consistency while reducing write completion time.
Data Source
AI summary
A plurality of storage drives, for managing data. includes: transmitting a first data update command which specifies a first address, and first new data to a first storage drive included in the plurality of storage drives; updating a sequence number of the first address managed in the first storage drive in response to the first data update command; transmitting a first redundant data update command which specifies a second address of old redundant data, data for updating the old redundant data, and the updated sequence number, to a second storage drive which stores the old redundant data associated with the first address and which is included in the plurality of storage drives; updating the old redundant data based on the data for updating the old redundant data; and updating a sequence number of the second address managed in the second storage drive according to the updated sequence number.


