Dynamic Prefetch Throttling for Multi-Controller Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-controller data deduplication systems, prefetching data can lead to performance issues due to unbalanced workloads among controllers, causing prefetched data to be overwritten in the cache before it is actually requested, resulting in increased latency and reduced read throughput.

Innovation Solution

Implementing dynamic throttling of prefetch hints by buffering and processing them only when the cache has sufficient space and the data is anticipated to be requested, using an offset or cache availability metrics to determine readiness for processing, ensuring that data is not prefetched too early and reducing the likelihood of cache overflow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is prefetched into cache before client requests, then read throughput is improved, but cache data may be overwritten before request occurs causing latency

Engineering Contradiction:
Improveread throughputVSAvoiddata latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system dynamically adjusts prefetching behavior based on real-time cache conditions and workload distribution. Controllers monitor cache availability and adjust prefetch timing accordingly, transitioning from static prefetching to dynamic adaptation based on system state

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms where controllers monitor cache hit/miss ratios, workload balance, and prefetch effectiveness. This feedback is used to adjust prefetch parameters and throttling levels to optimize the balance between throughput and latency

Inventive Principle:
Principle #23Feedback

2Productivity

If prefetching is enabled in multi-controller systems, then read performance is improved, but unbalanced workloads cause cache overflow and performance degradation

Engineering Contradiction:
Improveread performanceVSAvoidcache validity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system applies different prefetching strategies to different controllers based on their individual workload characteristics and cache states. Each controller adjusts its prefetching behavior locally according to its specific conditions rather than using a uniform approach

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes prefetch parameters dynamically based on controller workload balance and cache availability. When workloads are unbalanced or cache is full, prefetch parameters are adjusted to prevent cache overflow and maintain data validity

Inventive Principle:
Principle #35Parameter changes

3Productivity

If aggressive prefetching is used, then read throughput increases, but cache overflow causes data to be overwritten before request

Engineering Contradiction:
Improveread throughputVSAvoiddata availability timing
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The system performs preliminary checks of cache availability and request timing before initiating prefetch operations. This preliminary action ensures that prefetching only occurs when cache space is available and data will be needed, preventing premature overwrites

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies preliminary anti-action by throttling or disabling prefetching when cache conditions indicate risk of overflow. This preventive measure counteracts the tendency toward aggressive prefetching that would cause data unavailability

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS8775775B1Dynamic prefetch throttling for multi-controller systems
Publication Date: 2014.07.08 EMC IP HLDG CO LLC
  • US8775775B1 patent drawing
  • US8775775B1 patent drawing
  • US8775775B1 patent drawing

AI summary

A method for reading data from data storage is disclosed. A prefetch hint identifying a chunk of data a requesting node anticipates the requesting node will request that a controller retrieve from data storage is received. The prefetch hint is stored in a buffer at the controller. A determination that the prefetch hint is ready for processing is made. The determination is based at least in part on an offset or other data indicating a place of the chunk of data within a sequence of related chunks of data one or more of which may have been read previously into a cache of the controller. The prefetch hint is processed in response to determining that the prefetch hint is ready for processing, including by reading the chunk of data from a data storage of the controller and storing the chunk of data in the cache.