Dynamic Cache Allocation for Storage Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage systems face inefficiencies due to the speed discrepancy between hard disk drives and memory, leading to underutilization of expensive SSDs and high memory constraints that make it costly to maintain accurate estimates of workload cacheability.

Innovation Solution

Implementing a method to dynamically monitor and estimate workload cacheability by adjusting the monitoring interval and utilizing properties of working-set estimates to reduce memory overhead, allowing for feasible cacheability tracking even in resource-constrained environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If SSD memories are allocated based on requirement to meet service level objectives during peak usage, then service level objectives are met, but SSD memory is over-allocated and underutilized much of the time

Engineering Contradiction:
Improveservice level objectiveVSAvoidSSD utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent implements dynamic cache allocation that adjusts SSD memory allocation based on real-time workload characteristics and access patterns. The system continuously monitors workload behavior and modifies cache size dynamically, transitioning from static peak-based allocation to adaptive allocation that matches actual demand, thereby improving utilization efficiency while maintaining service level objectives.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of cache allocation from fixed peak-based sizing to variable sizing based on workload analysis. By analyzing access patterns, working set sizes, and cacheability metrics, the system adjusts cache parameters dynamically to optimize the balance between meeting service level objectives and efficient resource utilization.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If accurate estimates of workload cacheability are maintained, then cache allocation accuracy is improved, but memory constraints make it costly to maintain accurate estimates

Engineering Contradiction:
Improvecacheability estimate accuracyVSAvoidmemory resource
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies partial action by maintaining cacheability estimates selectively rather than for all workloads uniformly. The system identifies which workloads benefit most from accurate cacheability estimation and applies detailed tracking only to those cases, while using simpler estimation methods or defaults for others, thereby reducing overall memory consumption while maintaining accuracy where it matters most.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system implements local quality by applying different levels of estimation accuracy to different workloads based on their characteristics. High-priority or cache-sensitive workloads receive more accurate tracking with larger monitoring buffers, while less critical workloads use coarser estimation methods, optimizing the trade-off between measurement precision and memory resource usage across the system.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9298616B2Systems and methods for tracking working-set estimates with a limited resource budget
Publication Date: 2016.03.29 NETAPP INC
  • US9298616B2 patent drawing
  • US9298616B2 patent drawing
  • US9298616B2 patent drawing

AI summary

Embodiments of the systems and techniques described here can leverage several insights into the nature of workload access patterns and the working-set behavior to reduce the memory overheads. As a result, various embodiments make it feasible to maintain running estimates of a workload's cacheability in current storage systems with limited resources. For example, some embodiments provide for a method comprising estimating cacheability of a workload based on a first working-set size estimate generated from the workload over a first monitoring interval. Then, based on the cacheability of the workload, a workload cache size can be determined. A cache then can be dynamically allocated (e.g., change, possibly frequently, the cache allocation for the workload when the current allocation and the desired workload cache size differ), within a storage system for example, in accordance with the workload cache size.