Key-Value File System Bridging SSDs to OS Page Cache
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Key-value Solid State Drives (SSDs) do not typically utilize the operating system's page cache, leading to performance issues and requiring users to implement their own caching mechanisms, which is complex and costly, and results in cache content not being shared across applications or persisting across application restarts.
Innovation Solution
A Key-Value File System (KVFS) is introduced, which includes a shim to translate key-value system commands into file system requests, allowing the use of the operating system's page cache, and a KVFS driver to manage a cache that supports file system interfaces, enabling partial reads and writes and sharing cached data across applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If key-value SSDs are used with object semantics instead of block semantics, then storage performance is improved, but the ability to utilize the operating system's page cache is lost
Solution Approach 1:
The patent introduces a key-value file system (KVFS) as an intermediary layer between the key-value SSD and the operating system's file system interface. This KVFS layer translates file system operations into key-value operations, enabling the page cache to function with key-value SSDs despite their different semantics. The KVFS acts as a mediator that bridges the incompatibility between block-based page cache mechanisms and object-based key-value storage.
2Productivity
If user programs implement their own caching mechanism, then cache functionality is achieved, but software development complexity and cost increase significantly
Solution Approach 1:
The patent enables the operating system's page cache to automatically serve key-value SSDs without requiring user programs to implement their own caching mechanisms. By making the page cache accessible through the key-value file system interface, the system provides self-service caching that eliminates the need for application-level cache implementation, thereby reducing software development complexity while maintaining cache functionality.
3Productivity
If user space caching is used, then caching is achieved, but cache content cannot be shared across different programs and is lost when a program terminates
Solution Approach 1:
The patent merges the benefits of key-value storage with the operating system's shared page cache mechanism. By routing key-value operations through the key-value file system that interfaces with the page cache, multiple programs can share the same cache content simultaneously. The cache becomes a shared resource managed by the operating system rather than being isolated to individual user programs, enabling inter-program cache sharing while maintaining persistence across program terminations.
Data Source
AI summary
A system and method for leveraging a native operating system (130) page cache (315) when using non-block system storage devices (120) is disclosed. A computer (105) may include a processor (110), memory (115), and a non-block system storage device (120). A file system (135) may be stored in memory (115) and running on the processor (110), which may include a page cache (315). A key-value file system (KVFS) (145) may reside between the file system (135) and the storage device (120) and may map received file system commands (310) to key-value system commands (330) that may be executed by the storage device (120). Results of the key-value system commands (330) may be returned to the file system (135), permitting the operating system (130) to cache data in the page cache (315).


