Flash Memory Cache for Persistent Key-Value Store

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash media is expensive and has reduced lifetimes due to page wearing, making it costly to use for high-performance applications while also being inefficient in terms of cost and longevity.

Innovation Solution

Configuring flash memory as a secondary storage device using RAM-based data structures and mechanisms, such as a RAM-based index and write buffer, to manage data items and maintain a cache, which reduces unnecessary hard disk access and optimizes data storage by recycling flash pages and using bloom filters to track access patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If flash media is used for high-performance storage, then data access speed is improved, but cost increases and device lifetime decreases

Engineering Contradiction:
Improvedata access speedVSAvoiddevice lifetime
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The storage system is segmented into multiple tiers: flash memory for hot data and frequent access, hard disk for cold data and archival storage. This segmentation allows the system to achieve high access speeds for frequently accessed data while preserving flash media lifetime by moving less frequently accessed data to harder disk storage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A flash memory cache is introduced as an intermediary layer between RAM and hard disk storage. This cache uses RAM-based data structures (hash tables, bloom filters) to manage flash pages, providing high-performance access for active data while reducing direct hard disk access and minimizing flash media wear through intelligent page recycling.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If flash media is used for high-performance storage, then data access speed is improved, but cost increases

Engineering Contradiction:
Improvedata access speedVSAvoidstorage cost
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The storage system is segmented into multiple tiers: flash memory for hot data and frequent access, hard disk for cold data and archival storage. This segmentation allows the system to achieve high access speeds for frequently accessed data while preserving flash media lifetime by moving less frequently accessed data to harder disk storage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different storage media are assigned to different data access patterns: flash memory provides high-speed access for frequently accessed data (hot data), while hard disk provides cost-effective storage for infrequently accessed data (cold data). This local quality optimization ensures that expensive flash media is used only where its high performance is actually needed.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If random writes are performed on flash media, then data access flexibility is improved, but page wearing increases and lifetime reduces

Engineering Contradiction:
Improvedata access flexibilityVSAvoiddevice lifetime
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

Data is pre-processed and organized in RAM-based data structures (hash tables, bloom filters) before being written to flash media. This preliminary organization allows the system to batch writes and optimize page utilization, reducing the frequency of random writes and extending flash media lifetime while maintaining data access flexibility through the RAM-based index.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuous operation of the flash memory cache with ongoing data items being actively managed. By keeping the cache warm and continuously optimizing page recycling, the system reduces the need for frequent rewrites and maintains high adaptability while minimizing wear through sustained efficient operation.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9436596B2Flash memory cache including for use with persistent key-value store
Publication Date: 2016.09.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9436596B2 patent drawing
  • US9436596B2 patent drawing
  • US9436596B2 patent drawing

AI summary

Described is using flash memory, RAM-based data structures and mechanisms to provide a flash store for caching data items (e.g., key-value pairs) in flash pages. A RAM-based index maps data items to flash pages, and a RAM-based write buffer maintains data items to be written to the flash store, e.g., when a full page can be written. A recycle mechanism makes used pages in the flash store available by destaging a data item to a hard disk or reinserting it into the write buffer, based on its access pattern. The flash store may be used in a data deduplication system, in which the data items comprise chunk-identifier, metadata pairs, in which each chunk-identifier corresponds to a hash of a chunk of data that indicates. The RAM and flash are accessed with the chunk-identifier (e.g., as a key) to determine whether a chunk is a new chunk or a duplicate.