Event-Based Pre-Fetch Cache Controller for Non-Sequential Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage systems face performance issues with non-sequential read requests, as they generate multiple requests for non-continuous data blocks, leading to decreased performance and increased latency.
Innovation Solution
Implementing a cache management technology that pre-fetches non-sequential data based on defined events, creating a pre-fetch list of read requests and storing them in cache memory to reduce subsequent read requests to storage devices, thereby improving read performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If multiple read requests are issued for non-sequential storage blocks, then data can be retrieved from storage, but read performance decreases and latency increases
Solution Approach 1:
The system performs preliminary actions by detecting defined events (such as virtual device boot sequences or virus scans) and pre-fetching non-sequential data blocks into cache memory before they are actually requested by the host. This advance preparation ensures that when the host subsequently requests this data, it can be served from the faster cache rather than from the slower storage device, thereby resolving the contradiction between retrieval capability and read performance/latency.
2Productivity
If data is pre-fetched to cache memory, then subsequent read requests are faster, but cache memory resources are consumed
Solution Approach 1:
The system applies preliminary action by selectively pre-fetching only those data blocks that are associated with defined events (such as boot sequences or virus scans) into cache memory in advance. This targeted approach ensures that cache resources are allocated to data that is most likely to be requested soon, improving read performance while avoiding wasteful consumption of cache memory on data that may not be needed.
Solution Approach 2:
The system changes parameters by dynamically determining which data blocks to pre-fetch based on event detection and validity checks of pre-fetch lists. The controller adjusts cache usage parameters by validating pre-fetch lists against current host requests, ensuring that cache memory is used efficiently for data that actually improves productivity rather than being statically allocated.
3Productivity
If a pre-fetch list is created and validated, then data retrieval efficiency improves, but controller processing complexity increases
Solution Approach 1:
The system applies self-service by implementing automatic event detection mechanisms that identify when defined events (such as virtual device boot sequences or virus scans) occur. The controller automatically creates pre-fetch lists, validates them against actual host requests, and manages cache allocation without requiring manual intervention or complex external control logic. This automation improves data retrieval efficiency while keeping the added processing complexity manageable through systematic self-management.
Solution Approach 2:
The system uses feedback by validating pre-fetch lists against actual host read requests. The controller continuously monitors whether pre-fetched data is actually requested by the host and adjusts its pre-fetching behavior accordingly. This feedback mechanism ensures that the increased controller processing complexity is justified by tangible improvements in data retrieval efficiency, as the system learns from actual usage patterns to optimize future pre-fetching decisions.
Data Source
AI summary
A cache management system and method allowing data stored in non-sequential storage blocks on a storage system to be retrieved to a cache memory in advance of a call for the data based on a defined event in a host. The system and method detects a defined event from the host. The defined event issues an event read sequence of read requests for data from non-sequential storage blocks of a storage system. The event data read sequence of read requests is recorded to create a pre-fetch list. The read requests in the event read sequence are then issued for the pre-fetch list associated with the defined event to store the requested data in the cache memory.


