Pre-Cache Module SLA-Based Write Request Prioritization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In storage systems, logical volumes with different service-level agreements (SLAs) often share the same resources, leading to performance disparities, where high-write-request volumes can overwhelm cache resources, compromising the guaranteed performance of other volumes.
Innovation Solution
A method that monitors actual performance versus SLA-defined performance for multiple logical volumes, assigns caching priorities based on these relationships, and manages a pre-cache memory module to regulate write requests, ensuring that underperforming volumes receive increased transfer rates while overperforming volumes receive decreased rates, thereby optimizing cache usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a pre-cache memory module is introduced to store write requests when cache memory is full, then write request buffering capability is improved, but device complexity increases
Solution Approach 1:
The pre-cache memory module is nested within the storage system architecture, positioned between the cache memory and the host. This nested structure allows the pre-cache to buffer write requests without requiring a completely separate external system, thereby improving buffering capacity while minimizing the increase in overall device complexity.
2Reliability
If write requests are transferred from pre-cache memory to cache memory based on caching priorities, then performance consistency across logical volumes is improved, but control complexity increases
Solution Approach 1:
Different caching priorities are assigned to different logical volumes based on their specific performance requirements and SLA agreements. This local differentiation allows the system to optimize performance consistency for each logical volume individually, with the control layer managing priority assignments based on monitored performance metrics and SLA compliance.
Solution Approach 2:
The control layer continuously monitors actual performance of logical volumes and uses this feedback to dynamically adjust caching priorities. When a logical volume is not meeting its SLA performance targets, the system increases its caching priority to improve performance, creating a closed-loop feedback mechanism that maintains performance consistency.
3Manufacturing precision
If caching priorities are assigned based on actual-to-required performance relationships, then SLA compliance is improved, but monitoring and calculation complexity increases
Solution Approach 1:
The control layer automatically monitors actual performance metrics, calculates actual-to-required relationships, and assigns caching priorities without requiring external intervention. This self-service approach improves SLA compliance accuracy by continuously adapting to actual performance conditions, while the automated nature of the process manages the complexity of monitoring and calculations internally within the storage system.
Data Source
AI summary
A method for service level agreement (SLA) allocation of resources of a cache memory of a storage system, the method may include monitoring, by a control layer of the storage system, actual performances of the storage system that are related to multiple logical volumes; calculating actual-to-required relationships between the actual performances and SLA defined performances of the multiple logical volumes; assigning caching priorities, to different logical volumes of the multiple logical volumes; wherein the assigning is based on, at least, the actual-to-required relationships; and managing, based on at least the caching priorities, a pre-cache memory module that is upstream to the cache module and is configured to store write requests that (i) are associated with one or more logical volumes of the different logical volumes and (ii) are received by the pre-cache memory module at points in time when the cache memory is full; wherein the managing comprises transferring one or more write requests from the pre-cache memory module to the cache memory when the cache memory is not full.


