Dynamic Stripe Size Selection for Storage Space Utilization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage systems face inefficiencies in striping data due to suboptimal space utilization and throughput, particularly when using large stripes that span multiple disks of different sizes, leading to unused disk space and reduced actual throughput.
Innovation Solution
The implementation of dynamic striping rules that determine optimal stripe sizes and disk assignments based on current disk configurations, including available capacity and performance parameters, to maximize space utilization and throughput by simulating different stripe sizes and evaluating space utilization and parallel write capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If large stripe sizes are used to span multiple disks, then parallel write capability is improved, but space utilization deteriorates due to unused disk space
Solution Approach 1:
The patent implements dynamic stripe size selection that adapts to the actual disk configuration. Instead of using fixed large stripe sizes, the system dynamically determines optimal stripe sizes based on disk capacities, ensuring that stripes fully utilize available disk space without leaving unused portions. This dynamic adjustment resolves the contradiction by maintaining high parallel write capability while eliminating space waste.
Solution Approach 2:
The system changes the parameter of stripe size based on disk configuration characteristics. By calculating optimal stripe sizes that are multiples of the greatest common divisor of disk capacities, the system ensures complete space utilization. This parameter adaptation allows the system to maintain efficient parallel writes while preventing the space loss that occurs with fixed large stripe sizes.
2Device complexity
If fixed stripe sizes are used, then implementation simplicity is improved, but adaptability to different disk configurations deteriorates
Solution Approach 1:
The patent employs parameter changes by dynamically adjusting stripe size based on disk configuration. The system calculates optimal stripe sizes using the greatest common divisor of disk capacities, allowing it to adapt to various disk arrangements while maintaining a relatively simple implementation through automated calculation and configuration-based selection.
Solution Approach 2:
The system transitions from static fixed stripe sizes to dynamic stripe size selection. The stripe size becomes a dynamic parameter that automatically adjusts to match the disk configuration, providing versatility across different scenarios while keeping the implementation simple through algorithmic determination rather than manual configuration.
3Loss of substance
If stripes do not align with disk boundaries, then space utilization is improved, but write throughput deteriorates due to increased I/O operations
Solution Approach 1:
The system optimizes stripe size parameters to be multiples of the greatest common divisor of disk capacities. This mathematical approach ensures that stripes naturally align with disk boundaries while fully utilizing available space. The parameter optimization simultaneously achieves both complete space utilization and efficient write throughput by eliminating the need for additional I/O operations.
Solution Approach 2:
The system performs preliminary calculation of optimal stripe sizes based on disk configurations before actual data writing. By pre-determining stripe parameters that satisfy both space utilization and alignment requirements, the system avoids the performance penalty of misaligned writes while ensuring complete space usage. This preliminary optimization resolves the contradiction between space utilization and write throughput.
Data Source
AI summary
A method for striping, the method may include performing, for each period of time out of multiple periods of time, the steps of: (i) determining striping rules; wherein the determining of the striping rules may include selecting one or more selected stripe size values out of multiple stripe size value candidates; wherein the selecting is based on values of storage system parameters that are obtained when applying the multiple stripe size value candidates; wherein the storage system parameters comprise storage space utilization and storage system throughput; and (ii) applying the striping rules by the storage system, during the period of time; wherein the applying comprises obtaining data chunks; converting the data chunks to stripes having at least one of the one or more selected stripe size values; and storing the stripes in the storage system.


