Non-blocking coherent re-writes for storage defragmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Fragmentation of memory in storage systems reduces performance over time, leading to decreased efficiency, and existing defragmentation methods can cause data inconsistencies and increased write amplification.

Innovation Solution

A non-blocking coherent re-write process is implemented, where the storage system takes a snapshot of the logical-to-physical address table during a read operation and compares it with the current version during a write operation, ensuring data coherency and only writing data back if unchanged, thereby maintaining logical and physical address mapping coherency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Stability of the object's composition

If traditional defragmentation operations are performed, then memory fragmentation is reduced, but data inconsistencies and increased write amplification occur

Engineering Contradiction:
Improvememory fragmentationVSAvoiddata consistency
Core Design Contradiction:
Stability of the object's compositionVSReliability

Solution Approach 1:

The system performs a read operation first to obtain a snapshot of the logical-to-physical address table before the defragmentation write operation. This preliminary action allows the system to compare address mappings before writing, preventing data inconsistencies by ensuring the write target is still valid and unchanged.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system compares the snapshot of the logical-to-physical address table with the current version after the read operation. This feedback mechanism allows the system to detect changes in address mappings and decide whether to proceed with the write operation, thereby maintaining data consistency while reducing fragmentation.

Inventive Principle:
Principle #23Feedback

2Stability of the object's composition

If defragmentation operations are performed, then memory fragmentation is reduced, but write amplification increases

Engineering Contradiction:
Improvememory fragmentationVSAvoidwrite amplification
Core Design Contradiction:
Stability of the object's compositionVSLoss of energy

Solution Approach 1:

By performing the read operation first and obtaining a snapshot of the address table, the system can later compare this snapshot with the current state before writing. This allows the system to identify whether the data has actually changed and only write when necessary, reducing unnecessary write operations and thus write amplification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses its own read operation to gather information about the current state of the memory mapping, then uses this information to make intelligent decisions about whether to perform the write operation. This self-service approach allows the defragmentation process to be more efficient and reduce redundant writes.

Inventive Principle:
Principle #25Self-service

3Reliability

If read operations are performed to check data coherency, then data consistency is maintained, but read performance may be impacted

Engineering Contradiction:
Improvedata coherencyVSAvoidread performance
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The read operation to obtain the address table snapshot is performed as a preliminary action before the defragmentation write. By batching this read operation with the subsequent write operation and using the snapshot for comparison, the system minimizes the impact on read performance while ensuring data coherency is maintained throughout the defragmentation process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11847343B2Storage system and method for non-blocking coherent re-writes
Publication Date: 2023.12.19 SANDISK TECHNOLOGIES LLC
  • US11847343B2 patent drawing
  • US11847343B2 patent drawing
  • US11847343B2 patent drawing

AI summary

A host sends a storage system a command to read data from a memory and then a command to write the data back to the memory to defragment the data. The host sends flags along with the commands. The flag sent with the read command causes the storage system to take a snapshot of the logical-to-physical address map relevant to the data. The flag sent with the write command causes the storage system to compare the snapshot with the current version of the logical-to-physical address map and write the data back to the memory only if there is a match.