RAID Subsystem Destaging Multiple Cache Slots
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage systems with block-based architectures are limited in efficiently managing variable-sized front-end tracks (FE TRKs) by requiring each FE TRK to be destaged to a separate back-end track (BE TRK) in multiple input-output operations, leading to inefficient use of storage resources and increased IO complexity.
Innovation Solution
Implementing a storage system with a data service layer and a back-end RAID subsystem that calculates parity and assembles data from multiple cache slots into a single BE TRK for destaging in a single back-end IO operation, allowing for variable-sized FE TRKs to be packed efficiently into BE TRKs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If each front-end track (FE TRK) is destaged to a separate back-end track (BE TRK) in separate IO operations, then data integrity and simplicity of management are maintained, but storage resource utilization decreases and IO operation complexity increases
Solution Approach 1:
The patent merges multiple FE TRKs into a single BE TRK by collecting data from multiple cache slots and assembling them into one consolidated BE TRK that is then destaged in a single IO operation. This combining approach improves storage resource utilization by eliminating gaps between separate BE TRKs and reduces the number of IO operations required.
Solution Approach 2:
The patent segments the BE TRK assembly process into distinct stages: collecting data from multiple cache slots, calculating parity information, assembling the consolidated BE TRK, and performing a single destage operation. This segmentation allows complex multi-FE-TRK destaging to be managed through systematic, manageable steps while maintaining data integrity.
2Ease of operation
If fixed-size allocation units are used for IOs, then metadata manageability is improved, but flexibility in handling variable-sized FE TRKs decreases
Solution Approach 1:
The patent implements dynamic FE TRK sizing where the system can handle variable-sized FE TRKs rather than being constrained to fixed sizes. The data service layer dynamically determines the size of each FE TRK based on actual data requirements, and the BE TRK assembly process dynamically adjusts to accommodate different combinations of FE TRK sizes, providing both metadata manageability and size flexibility.
Solution Approach 2:
The patent changes the parameter of allocation unit size from fixed to variable by allowing FE TRKs to have different sizes based on actual data needs. The system dynamically adjusts FE TRK size parameters while maintaining efficient metadata management through the data service layer's tracking and mapping mechanisms.
3Productivity
If multiple cache slots are destaged in separate BE TRKs, then data organization simplicity is maintained, but storage efficiency decreases due to unused space
Solution Approach 1:
The patent combines multiple cache slots into a single consolidated BE TRK, eliminating the wasted space that occurs when each cache slot is destaged to a separate BE TRK. By merging the data from multiple cache slots into one BE TRK, the system achieves dense packing of data and eliminates gaps, thereby improving storage efficiency.
Solution Approach 2:
The patent nests multiple FE TRK data units within a single BE TRK structure, similar to nested dolls. The BE TRK serves as the outer container that holds multiple inner FE TRK data segments, along with parity information. This nesting approach maximizes the utilization of the BE TRK space and eliminates wasted capacity.
Data Source
AI summary
A data service layer running on a storage director node generates a request to destage host data from a plurality of cache slots in a single back-end track. The destage request includes pointers to addresses of the cache slots and indicates an order in which the host application data in the cache slots is to be included in the back-end track. A back-end redundant array of independent drives (RAID) subsystem running on a drive adapter is responsive to the request to calculate parity information using the host application data in the cache slots. The back-end RAID subsystem assembles the single back-end track comprising the host application data from the plurality of cache slots of the request, and destages the single back-end track to a non-volatile drive in a single back-end input-output (IO) operation.


