Block-Level Prefetching Using Access History Probability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing prefetching techniques are inefficient in capturing semantic correlation across random accesses in cloud storage caching, particularly due to their coarse-grained file-based approaches that do not adaptively determine the amount or type of data to prefetch, leading to high costs and performance penalties.
Innovation Solution
A method that identifies candidate data blocks with higher historical access probabilities than their successors, using a prefetch threshold value to dynamically determine which blocks to fetch and store in the cache, leveraging access history and sequentiality to optimize prefetching.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If file-based history prefetching is used, then access patterns can be captured, but prefetch wastage increases due to bringing entire files into cache
Solution Approach 1:
The patent segments files into smaller data blocks and performs prefetching at the block level rather than file level. This allows selective prefetching of only those blocks that are likely to be accessed, avoiding the wastage of bringing entire files into cache. The system maintains block-level access history to identify patterns while operating at a finer granularity than traditional file-based approaches.
Solution Approach 2:
The patent applies local quality by making prefetching decisions specific to individual data blocks based on their access history and probability, rather than applying a uniform file-level approach. Each block is evaluated independently with its own prefetch probability calculation, allowing the system to adapt to local access patterns within files.
2Device complexity
If sequential prefetching is used, then simplicity is maintained, but semantic correlation across random accesses cannot be captured
Solution Approach 1:
The patent implements feedback by maintaining and continuously updating block-level access history. This historical information feeds into probability calculations that determine which blocks to prefetch, creating a closed-loop system that adapts to actual access patterns. The feedback mechanism enables the system to capture semantic correlations while maintaining reasonable complexity through algorithmic processing of historical data.
3Loss of time
If cloud storage caching is used, then access latency can be reduced, but the penalty for wrong prefetch decisions is very high
Solution Approach 1:
The patent applies dynamics by making prefetching decisions adaptive and probabilistic rather than static and deterministic. The system dynamically calculates prefetch probabilities based on current access history and updates these probabilities as new access patterns emerge. This dynamic approach allows the system to adjust to changing workloads and reduces the penalty of wrong prefetch decisions by being more selective.
Solution Approach 2:
The patent changes the parameter of prefetching granularity from file-level to block-level, and introduces probability as a new parameter for decision-making. By operating at block granularity and using probability thresholds, the system can more precisely control what data is prefetched, reducing wasted cache space while maintaining the latency benefits of caching.
Data Source
AI summary
A method, non-transitory computer readable medium, and device that prefetchs includes identifying a candidate data block from one of one or more immediate successor data blocks. The identified candidate data block has a historical access probability value from an initial accessed data block which is higher than a historical access probability value for each of the other immediate successor data blocks and is above a prefetch threshold value. The identifying is repeated until a next identified candidate data block has the historical access probability value below the prefetch threshold value. In the repeating, the identifying next immediate successor data blocks is from the previously identified candidate data block and the historical access probability value for each of the next immediate successor data blocks is determined from the originally accessed data block. The identified candidate data block with the historical access probability value above the prefetch threshold value is fetched.


