Storage Cache Reserved Block Entries List Lock Contention
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If global lock acquisitions are frequent to ensure cache consistency, then data integrity is improved, but I/O performance degrades
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.
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.
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
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.
Data Source
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.


