File System Cache Chunk Eviction via Access Bitmaps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current file caching technologies, such as SSDs used as caches, face inefficiencies due to traditional eviction algorithms that consume memory and processing time, particularly when large files occupy cache space despite only small portions being accessed, leading to suboptimal cache memory utilization.

Innovation Solution

Implement a method where files above a threshold size are stored as chunks with associated access and size bits, using an access bitmap to track recent access, and periodically clearing access bits to initiate cache eviction of non-recently accessed files or chunks, maintaining cache utilization within specific thresholds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional eviction algorithms (LRU, L2ARC, two-hand clock) are used to manage cache files, then cache management is achieved, but memory consumption and processing time increase significantly due to maintaining and updating ordered lists

Engineering Contradiction:
Improvecache management efficiencyVSAvoidmemory consumption and processing overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments large files into chunks and maintains separate access bitmaps for each chunk rather than treating files as single units. This segmentation allows the system to track access patterns at a granular level without requiring complex global ordering structures, reducing memory overhead while improving eviction decisions for large files

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the access tracking mechanism from complex ordered list structures and implements it through simple access bits and bitmaps associated with each file or chunk. This extraction eliminates the need for maintaining ordered lists while preserving the essential functionality of tracking recently accessed items, thereby reducing processing overhead

Inventive Principle:
Principle #2Taking out (Extraction)

2Quantity of substance

If large files are stored in cache, then cache capacity is utilized, but cache memory efficiency decreases because only small portions of large files are actually accessed

Engineering Contradiction:
Improvecache capacity utilizationVSAvoidcache memory efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent divides large files into smaller chunks and maintains individual access bitmaps for each chunk. This allows the system to identify and evict only the uncached or rarely accessed portions of large files while retaining frequently accessed chunks in cache, thereby improving cache memory efficiency without sacrificing overall cache capacity utilization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different eviction strategies to different parts of large files based on their access patterns. By tracking access bits at the chunk level rather than file level, the system can selectively retain or evict specific portions of large files, optimizing cache usage by keeping only the most valuable segments in memory

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9239790B1Techniques for evicting cached files
Publication Date: 2016.01.19 ARCTERA US LLC
  • US9239790B1 patent drawing
  • US9239790B1 patent drawing
  • US9239790B1 patent drawing

AI summary

Techniques for evicting cached files may be realized as a method including: maintaining a file system cache storing selected files from a file storage; for files that are above a threshold size, selectively storing chunks of the files; for each file that is stored, associating an access bit and a size bit with that file; for each file that is stored selectively as file chunks, associating an access bitmap to the file having an access bit associated with each file chunk; when a file is accessed, setting the access bit associated with the file and file chunk to indicate recent access; at set intervals, periodically clearing the access bits to not indicate recent access; and carrying out a cache eviction process comprising evicting at least one file or file chunk associated with an access bit that does not indicate recent access.