Key-Value File System Bridging SSDs to OS Page Cache

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

VSEngineering 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

Engineering Contradiction:
Improvestorage performanceVSAvoidcompatibility with page cache
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If user programs implement their own caching mechanism, then cache functionality is achieved, but software development complexity and cost increase significantly

Engineering Contradiction:
Improvecache functionalityVSAvoidsoftware development complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
ImprovecachingVSAvoidcache sharing capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11301422B2System and methods for providing fast cacheable access to a key-value device through a filesystem interface
Publication Date: 2022.04.12 SAMSUNG ELECTRONICS CO LTD
  • US11301422B2 patent drawing
  • US11301422B2 patent drawing
  • US11301422B2 patent drawing

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).