Dynamic cache slot pre-allocation
AssigneeDell Products L.P.
InventorsJohn Creed, Ramesh Doddaiah
Life of this patent
Estimating the term…
Abstract
One or more aspects of the present disclosure relate to dynamically pre-allocating cache slots based on workload forecasting. In embodiments, characteristics corresponding to one or more input/output (IO) operations received by a storage array are determined. An IO workload for one or more cache segments of system memory of the storage array is also forecasted. In addition, a queue depth for each cache pool of the one or more cache segments is dynamically adjusted. Further, cache slots are dynamically pre-allocated to each cache pool based on the queue depth of each cache pool.
Claims20
An apparatus with a memory and processor, the apparatus configured to:
- determine characteristics corresponding to one or more input/output (IO) operations received by a storage array;
- establish separate cache slot queues for each cache pool of one or more cache segments of system memory of the storage array;
- forecast an IO workload for one or more cache segments of system memory of the storage array;
- dynamically adjust a queue depth for each cache pool of the one or more cache segments;
- and
- dynamically reserve cache slots in advance for each cache pool based on the queue depth of each cache pool, wherein the cache slots are reserved before receiving IO operations that will use the cache slots, wherein reserving comprises earmarking the cache slots without filling them with data immediately such that the cache slots are readily available in the cache slot queues when needed without delay of allocation at a time of receiving the IO operations, thereby reducing allocation latency when the IO operations are subsequently received.
A method comprising:
- determining characteristics corresponding to one or more input/output (IO) operations received by a storage array;
- establishing separate cache slot queues for each cache pool of one or more cache segments of system memory of the storage array;
- forecasting an IO workload for one or more cache segments of system memory of the storage array;
- dynamically adjusting a queue depth for each cache pool of the one or more cache segments;
- and
- dynamically reserving cache slots in advance for each cache pool based on the queue depth of each cache pool, wherein the cache slots are reserved before receiving IO operations that will use the cache slots, wherein reserving comprises earmarking the cache slots without filling them with data immediately such that the cache slots are readily available in the cache slot queues when needed without delay of allocation at a time of receiving the IO operations, thereby reducing allocation latency when the IO operations are subsequently received.
Dependencies are inferred from the claim text.