Phased Distributed LRU Cache Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing a shared cache in data storage systems is complicated due to the need for efficient eviction of data, especially when multiple computing nodes share the cache, as existing methods like LRU algorithms require slow serial remote memory accesses and are computationally costly, and may lead to disjoint lists of recently used data.
Innovation Solution
Implementing a phased distributed management system where each computing node maintains an LRU FIFO queue and hash tables for local cache objects, with logic to distribute access information and update records based on temporal phases, using modulo arithmetic for ownership and allocating portions of local caches as ownership areas, to efficiently manage cache eviction and avoid disjoint lists.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional LRU algorithms are used for shared cache management, then cache eviction can be performed, but slow serial remote memory accesses and high computational costs occur
Solution Approach 1:
The shared cache is divided into multiple ownership areas, with each area assigned to a specific computing node. Each node maintains local LRU FIFO queues and hash tables for its owned cache objects, eliminating the need for serial remote memory accesses across the entire cache. This segmentation allows parallel local operations while maintaining shared cache functionality.
Solution Approach 2:
Hash tables serve as intermediary data structures that map cache object identifiers to their LRU queue positions. These hash tables are distributed among computing nodes and allow efficient local lookup and update operations without requiring remote memory accesses to the actual cache objects, significantly reducing access time.
2Productivity
If traditional LRU algorithms are used for shared cache management, then cache eviction can be performed, but computationally costly operations occur
Solution Approach 1:
By dividing the cache management workload into separate ownership areas assigned to different computing nodes, each node performs LRU operations only on its local cache objects. This segmentation eliminates the need for computationally expensive global LRU calculations across all cache objects, reducing overall computational cost while maintaining eviction efficiency.
Solution Approach 2:
Each computing node maintains local copies of LRU FIFO queues and hash tables for the cache objects it owns. These local copies allow nodes to perform update and eviction operations without accessing remote memory, significantly reducing computational overhead and energy consumption compared to centralized LRU management.
3Loss of time
If distributed cache management is implemented, then remote memory accesses are reduced, but maintaining accurate LRU information across nodes becomes complex
Solution Approach 1:
The cache is segmented into ownership areas with clear boundaries, and each node is responsible for maintaining LRU information only for its owned objects. This segmentation simplifies distributed coordination by eliminating the need for nodes to track and synchronize LRU information for all cache objects, reducing system complexity while maintaining accuracy.
Solution Approach 2:
Hash tables act as intermediary structures that localize LRU information management. Each node maintains hash tables mapping cache object IDs to LRU queue positions for its owned objects, allowing accurate LRU tracking without complex inter-node communication. The hash tables serve as local mediators that eliminate the need for centralized LRU management.
Data Source
AI summary
In a system in which a plurality of computing elements share a cache, each computing element owns a stripe of the cache. Each stripe contains cache objects that are accessible to all computing elements but managed only by the owning computing element. Each computing element maintains an LRU FIFO queue in local memory for the cache objects owned by that computing element. Each computing element also maintains a separate hash table in local memory for each other computing element. The hash tables indicate access to cache objects that are owned by those other computing elements. Each computing element updates its LRU FIFO queue when it accesses cache objects that it owns. The hash tables are periodically distributed by all computing elements via RDMA so that the LRU FIFO queues of all computing elements can be updated based on accesses to owned cache objects by other non-owner computing elements.


