Parallel Prefetch Threads for Multi-Layer Cache Metadata Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvemetadata freshnessVSAvoidbank flush operation speed
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #20Continuity of useful action

2Productivity

If multiple prefetch threads are used to update metadata in parallel, then the rate of metadata caching increases, but system complexity increases

Engineering Contradiction:
Improvemetadata caching rateVSAvoidprefetch thread management
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvebank flush operation efficiencyVSAvoidmetadata retrieval time
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240411697A1Updating a cache in a multi-layer data store using parallel prefetch threads
Publication Date: 2024.12.12 VMWARE INC
  • US20240411697A1 patent drawing
  • US20240411697A1 patent drawing
  • US20240411697A1 patent drawing

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.