Flash Storage Stream Detection for Write Amplification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash-based storage devices, such as SSDs, experience significant fragmentation and increased write amplification due to simultaneous writing of multiple data objects, leading to degraded performance and the need for frequent garbage collection.

Innovation Solution

A method that groups data chunks belonging to the same object into streams and manages these streams using a stream detector, which adjusts timers and logical block addresses to minimize fragmentation by writing entire streams to blocks upon closure, reducing the need for garbage collection and write amplification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple data objects are written simultaneously to the storage device, then the storage capacity is effectively utilized, but data fragmentation increases and performance degrades

Engineering Contradiction:
Improvestorage capacity utilizationVSAvoiddata organization integrity
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent segments incoming write data into distinct streams based on stream identifiers, separating data from different applications or processes. This segmentation allows the storage device to organize and write data in a structured manner, preventing fragmentation while maintaining high storage utilization by efficiently managing multiple data streams independently.

Inventive Principle:
Principle #1Segmentation

2Productivity

If data is written in a fragmented manner across blocks, then storage space is efficiently used, but garbage collection frequency increases

Engineering Contradiction:
Improvestorage space efficiencyVSAvoidgarbage collection overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary actions by pre-allocating blocks for specific streams and maintaining stream metadata that tracks valid data locations. This preliminary organization allows the storage device to directly overwrite invalid data during garbage collection or to efficiently identify and preserve valid data, significantly reducing the time and overhead associated with garbage collection operations.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If streams are tracked using detailed metadata and timers, then data organization is improved, but device complexity increases

Engineering Contradiction:
Improvedata stream organizationVSAvoidstream management overhead
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent implements a universal stream detection mechanism that handles multiple data streams from different applications using a common set of metadata structures and management procedures. The stream detector and timer mechanisms serve multiple functions including stream identification, data organization, and garbage collection optimization, thereby reducing overall device complexity through multi-functionality rather than requiring separate specialized systems for each function.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10289309B2Automatic detection of multiple streams
Publication Date: 2019.05.14 KIOXIA CORP
  • US10289309B2 patent drawing
  • US10289309B2 patent drawing
  • US10289309B2 patent drawing

AI summary

A method of storing data in a storage device is disclosed. In one embodiment, the method includes receiving a write command comprising write data to be written to the storage device. The method further includes determining whether the write data belongs to a first open stream of write data if a logical block address corresponding to the write data is consecutive to, or within a given distance from, a logical block address of the first open stream of write data. The method further includes updating the logical block address of the first open stream of write data to the logical block address corresponding to the write data and resetting a timer of the first open stream of write data if the write data is determined to belong to the first open stream of write data. The method further includes closing the first open stream of write data when the timer expires.