Parallel Prefetch Threads for Multi-Layer Cache Metadata Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed storage systems, memory caches are inefficient due to interruptions and delays when accessing data not present in the cache, leading to slower bank flush operations and increased resource wastage from cache misses during write requests.
Innovation Solution
A computerized method using a prefetch module and associated prefetch threads to update the memory cache in parallel, reducing the need for metadata reads from the data store during bank flush operations, thereby minimizing cache misses and enhancing the efficiency of bank flush operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If metadata is read from the data store during bank flush operations, then the memory cache can be updated with current metadata, but cache misses occur causing interruptions and delays in I/O operations
Solution Approach 1:
The prefetch module proactively retrieves metadata from the data store before it is needed during bank flush operations. By performing this preliminary action, the system ensures metadata is already cached when required, eliminating cache misses and avoiding interruptions during the critical bank flush process.
Solution Approach 2:
The system maintains continuous metadata prefetching operations that run concurrently with bank flush operations. This ensures that metadata retrieval does not interrupt the bank flush process, allowing both operations to proceed simultaneously without causing delays or interruptions.
2Productivity
If multiple prefetch threads are used to update metadata in parallel, then the rate of metadata caching increases, but system complexity increases
Solution Approach 1:
The prefetch operation is divided into multiple independent threads that can execute simultaneously. Each thread handles specific metadata retrieval tasks, allowing parallel processing and increasing the overall metadata caching rate while distributing the workload across multiple independent units.
Solution Approach 2:
The system dynamically adjusts the number of active prefetch threads based on current system conditions and workload requirements. This dynamic adaptation allows the system to optimize between productivity and complexity by creating or terminating threads as needed, rather than maintaining a fixed number of threads.
3Productivity
If metadata is cached before bank flush operations, then cache misses are minimized, but additional I/O operations are required to retrieve the metadata
Solution Approach 1:
Metadata is retrieved and cached in advance before the bank flush operation begins. This preliminary action ensures that when the bank flush operation needs metadata, it is already available in the cache, eliminating the need for additional I/O operations during the critical bank flush process and improving overall efficiency.
Data Source
AI summary
The disclosure herein describes managing write requests in a multi-layer data store using prefetch threads. Prefetch requests received at the multi-layer data store are added to a prefetch request queue. A first prefetch thread obtains a first prefetch request and a second prefetch thread obtains a second prefetch request from the prefetch request queue. A memory cache is updated with first metadata of the first prefetch request by the first prefetch thread and with second metadata of the second prefetch request by the second prefetch thread, in parallel. After the memory cache is updated, a data bank in memory reaches a flush threshold and data in the data bank is written to a second data store, wherein the first metadata and second metadata in the memory cache are used to update a metadata structure with respect to the data written to the second data store.


