Storage Cache Reserved Block Entries List Lock Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face challenges in efficiently managing caches, leading to increased CPU consumption, lock contention, and degraded I/O performance due to frequent recycling of buffer cache blocks and the need for frequent global lock acquisitions.

Innovation Solution

Implementing a reserved block entries list with a specific number of block entries reserved for limited use, and using a random function to select a hash bucket in the global cache for finding available block entries, reducing reliance on the global reusable list and minimizing global lock acquisitions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If buffer cache blocks are frequently recycled to improve cache utilization, then cache efficiency is improved, but CPU consumption increases and lock contention worsens

Engineering Contradiction:
Improvecache efficiencyVSAvoidCPU consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments the cache management system into two distinct parts: a global reusable list that requires global locks and a reserved block entries list that operates without global locks. This segmentation allows frequent recycling in the reserved list without incurring global lock overhead, thus maintaining cache efficiency while reducing CPU consumption associated with lock management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the lock-contention-prone operations from the main cache recycling path by creating a separate reserved block entries list. This extracted list handles frequently recycled blocks without requiring global lock acquisitions, thereby isolating the harmful lock contention from the beneficial cache recycling operations.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If global lock acquisitions are frequent to ensure cache consistency, then data integrity is improved, but I/O performance degrades

Engineering Contradiction:
Improvedata integrityVSAvoidI/O performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides cache operations into two segments: operations on the reserved block entries list that do not require global locks and operations on the global reusable list that do require global locks. This segmentation allows most cache operations to proceed without lock overhead, significantly improving I/O performance while maintaining data integrity through selective lock usage when necessary.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The reserved block entries list acts as an intermediary structure between the global reusable list and the actual cache blocks. It provides a buffer zone where blocks can be recycled and managed without immediate global lock acquisitions, reducing the frequency of lock operations while ensuring consistency through periodic synchronization with the global list.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If the global reusable list is used for all block entries to simplify management, then system complexity is reduced, but lock contention increases

Engineering Contradiction:
Improvecache management complexityVSAvoidlock contention time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent segments the block entry management into two lists with different lock requirements. The reserved block entries list is designed specifically to minimize lock contention by allowing operations without global locks, while the global reusable list maintains the traditional lock-based management. This segmentation reduces overall lock contention time while maintaining manageable system complexity through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9606938B1Managing caches in storage systems
Publication Date: 2017.03.28 EMC IP HLDG CO LLC
  • US9606938B1 patent drawing
  • US9606938B1 patent drawing
  • US9606938B1 patent drawing

AI summary

A method is used in managing caches in storage systems. A set of block entries is reserved in a reserved block entries list of a storage system. The reserved block entries list is associated with a cache of the storage system configured to store data of the storage system. A portion of a memory of the storage system is reserved as the cache. Based on a criterion, a determination is made whether a cache entry is available for use in the cache of the storage system. Based on the determination, a block entry is selected for use from the reserved block entries list.