Dynamic Hashing for Cache Subsystems in Multi-Processor Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In networked storage systems, cache management operations in multi-processor environments are bottlenecked due to single-threaded or lock-managed designs, leading to increased response times and potential cache invalidation.

Innovation Solution

A dynamic hashing methodology that analyzes I/O requests to determine if they are random or sequential, adjusting the input to a hashing function to compute hash index values for efficient cache block lookups, using segment size for random requests and stripe size for sequential requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If locks are used to manage cache operations in multi-processor environments, then cache data consistency is maintained, but response time increases and contention occurs

Engineering Contradiction:
Improvecache data consistencyVSAvoidresponse time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces lock-free data structures and algorithms as intermediaries between multiple processors and the cache system. These structures enable concurrent access without requiring traditional locks, thereby maintaining data consistency while eliminating the contention and response time delays associated with lock-based approaches.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical locking mechanism with software-based lock-free algorithms and hardware-based atomic operations. This substitution eliminates the need for processors to physically wait for lock availability, thereby reducing response time while maintaining cache integrity through alternative synchronization mechanisms.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Device complexity

If single-threaded cache management is used, then implementation simplicity is maintained, but productivity decreases due to bottlenecks

Engineering Contradiction:
Improveimplementation simplicityVSAvoidI/O processing throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the cache management system into multiple independent threads that can operate concurrently. Each thread manages specific cache operations or cache partitions, allowing parallel processing of I/O requests. This segmentation increases productivity by utilizing multiple processors while maintaining relative implementation simplicity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic cache management where thread allocation, cache partitioning, and operation routing can adapt to changing workloads. This dynamic approach allows the system to optimize throughput under varying conditions while maintaining a relatively simple base implementation that can scale as needed.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10481835B2Methods and systems for dynamic hashing in caching sub-systems
Publication Date: 2019.11.19 NETAPP INC
  • US10481835B2 patent drawing
  • US10481835B2 patent drawing
  • US10481835B2 patent drawing

AI summary

Methods and systems for dynamic hashing in cache sub-systems are provided. The method includes analyzing a plurality of input/output (I/O) requests for determining a pattern indicating if the I/O requests are random or sequential; and using the pattern for dynamically changing a first input to a second input for computing a hash index value by a hashing function that is used to index into a hashing data structure to look up a cache block to cache an I/O request to read or write data, where for random I/O requests, a segment size is the first input to a hashing function to compute a first hash index value and for sequential I/O requests, a stripe size is used as the second input for computing a second hash index value.