Flash Translation Layer Journaling for Write Amplification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash storage devices face high write amplification due to the need to save the Flash Translation Layer (FTL) non-volatility, leading to increased recovery time and resource utilization, particularly as the journal grows in size and requires periodic flushing to the non-volatile memory.

Innovation Solution

Implementing a flash translation layer with a combination of journaling and multi-level mapping, including deadline-based flushing of second-level map pages, to aggregate updates and reduce map write amplification, thereby deferring the saving of the FTL state and amortizing the cost of saving the FTL non-volatility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the FTL is saved non-volatility frequently to maintain translation accuracy, then data integrity is improved, but write amplification increases

Engineering Contradiction:
Improvedata integrityVSAvoidwrite amplification
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent implements preliminary action by maintaining a journal in volatile memory that records FTL translation entries before they are flushed to non-volatile memory. This allows the system to prepare and buffer translation updates in advance, reducing the frequency of writes to non-volatile memory while ensuring data integrity through the journal's persistent recording mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism using a journal stored in volatile memory as a buffer between write operations and the non-volatile FTL storage. This intermediary absorbs the impact of frequent writes by deferring them to periodic flush operations, thereby reducing write amplification to non-volatile memory while maintaining translation accuracy through the journal's complete recording of FTL state changes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If the journal size is increased to aggregate more updates before flushing, then map write amplification is reduced, but recovery time increases

Engineering Contradiction:
Improvemap write amplificationVSAvoidrecovery time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting the journal size and flush thresholds based on system conditions. The journal can be configured with variable size parameters and flush triggers that balance between aggregating enough updates to reduce map write amplification while limiting recovery time. This allows optimization of the trade-off between write amplification reduction and recovery performance based on workload characteristics.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamics by making the journal management strategy adaptive rather than static. The system can dynamically adjust journal flush timing, size limits, and aggregation thresholds based on real-time conditions such as write throughput, recovery requirements, and memory availability. This dynamic adjustment enables the system to optimize the balance between reducing map write amplification and maintaining acceptable recovery times under varying operational conditions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9213633B2Flash translation layer with lower write amplification
Publication Date: 2015.12.15 SEAGATE TECH LLC
  • US9213633B2 patent drawing
  • US9213633B2 patent drawing
  • US9213633B2 patent drawing

AI summary

A method of associating a logical block address with a physical location in a non-volatile memory includes (A) in response to a write request comprising a respective logical block address in a logical block address space and respective data to be written to the non-volatile memory, determining a physical location in the non-volatile memory to store the respective data of the write request, (B) adding an entry to a journal, such that the added entry trails any entries already in the journal and the added entry has a respective logical block address field set to the respective logical block address of the write request and a respective physical location field set to the determined physical location, and (C) updating one of a plurality of second-level map pages in a two-level map according to the respective logical block address of the write request with the determined physical location.