Weighted Aging Algorithm for Global Memory Slot Destage Prioritization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing systems face challenges in efficiently prioritizing back-end write destage operations due to the lack of effective methods to manage global memory destage pressure and front-end track slot size allocations.
Innovation Solution
A method and apparatus that utilize a weighted aging algorithm to prioritize back-end write destage operations. This algorithm incorporates both global memory destage pressure and front-end track slot size allocations, using a weighted bucket table to determine the aging time for each slice based on the number of pending write operations and slot sizes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a simple aging algorithm is used to manage back-end slice destage operations, then the system complexity is reduced, but the ability to prioritize based on slot size allocation is lost
Solution Approach 1:
The patent introduces a weighted aging algorithm that changes the parameter of aging time based on slot size allocation. Different weights are assigned to different slot sizes (e.g., weight=1 for 64KB slots, weight=2 for 128KB slots), causing slices with larger slot sizes to have reduced aging times and be prioritized for destaging. This resolves the contradiction by adding parameter differentiation without fundamentally changing the aging mechanism.
Solution Approach 2:
The aging time for slices is made dynamic rather than static. The system continuously monitors destage pressure and adjusts aging times based on current conditions. When destage pressure is high, slices with larger slot sizes receive shorter aging times, creating a dynamic prioritization mechanism that adapts to system state without requiring complex reconfiguration.
2Ease of manufacture
If all slices are treated equally in the aging process, then the implementation is simplified, but larger slot sizes cannot be preferentially released
Solution Approach 1:
The patent applies local quality by treating different slice types differently based on their slot size characteristics. Instead of uniform treatment, the system assigns different weights to slices based on their allocated slot sizes, allowing larger slots to be prioritized for release. This maintains implementation simplicity while introducing differentiated behavior where needed.
Solution Approach 2:
The system changes the aging time parameter based on the local characteristics of each slice (its slot size). By introducing weight factors that multiply the base aging time, the system achieves selective prioritization without complex control logic. The parameter change is applied locally to each slice based on its properties.
3Productivity
If larger slot sizes are always preferred, then global memory availability is improved, but the ability to respond to varying destage pressure is reduced
Solution Approach 1:
The aging algorithm is made dynamic by incorporating current destage pressure as a factor in weight calculation. When destage pressure is high, the system increases the weight factor for larger slot sizes, causing them to be prioritized for destaging. When pressure is low, the differentiation is reduced. This dynamic response allows the system to adapt to varying conditions while maintaining the ability to preferentially release larger slots when needed.
Solution Approach 2:
The system implements feedback by monitoring destage pressure and using this information to adjust the aging algorithm's behavior. The pressure measurement feeds back into the weight calculation, creating a closed-loop system that automatically adapts to system conditions. This feedback mechanism ensures the system responds appropriately to varying destage pressure while maintaining slot size prioritization capabilities.
Data Source
AI summary
As front-end write IO operations occur, the front-end write IO operations are allocated slots of global memory and mapped to slices of back-end tracks. A back-end write destage manager allocates back-end slices to aging buckets based on the number of write operations pending destage for the given back-end slice. As global memory destage pressure increases, the back-end write destage manager uses a weighted bucket table to increase the weight back-end slices with larger numbers of front-end tracks that are occupying the larger slots of global memory. This results in back-end slices that are owed data from front-end tracks occupying larger front-end slot sizes to be placed in aging buckets with shorter aging times. These back-end slices are thus more quickly selected to be destaged, thus causing a larger percentage global memory slots of the largest slot size to be made available to be allocated to subsequent host IO write operations.


