SSD Storage System Chunk-Based Invalidation for Garbage Collection Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In storage systems using solid state drives (SSDs) in RAID configurations, frequent garbage collection occurs due to mismatched block sizes and invalidation units, leading to reduced access speed and data dispersion, as SSDs cannot overwrite or erase data in units smaller than blocks, causing mixed valid and invalid data, which necessitates frequent garbage collection.

Innovation Solution

A storage system with a control device that sets first and second storage regions across multiple SSDs, where each first region consists of one or more blocks and each second region includes multiple first regions, allowing for coordinated data management and invalidation in units of stripes, preventing mixed data blocks and reducing garbage collection frequency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data invalidation is performed in units of stripes across multiple SSDs, then distributed recording and redundancy are achieved, but mixed valid and invalid data occur in blocks, requiring frequent garbage collection and reducing access speed

Engineering Contradiction:
ImproveredundancyVSAvoidaccess speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The invention introduces a chunk as an intermediate unit between block and stripe, dividing the stripe into multiple chunks that correspond to blocks on individual SSDs. This segmentation allows data invalidation to be performed at the chunk level, preventing mixed valid and invalid data in blocks while maintaining stripe-level redundancy management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The chunk serves as an intermediary unit that bridges the block level (where garbage collection occurs) and the stripe level (where data invalidation is performed). By introducing this intermediate layer, the system can manage data invalidation without causing frequent garbage collection, thus maintaining both redundancy and access speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If garbage collection is executed frequently to manage invalid data, then empty blocks are generated for writing, but data dispersion increases and access speed decreases

Engineering Contradiction:
Improvedata managementVSAvoidaccess speed
Core Design Contradiction:
Ease of operationVSSpeed

Solution Approach 1:

The system performs data invalidation at the chunk level before it accumulates to require garbage collection at the block level. By preliminarily managing invalid data through chunk-based invalidation, the system reduces the frequency and impact of garbage collection operations, preventing data dispersion and maintaining access speed.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If block size is fixed for each SSD, then simple block management is achieved, but stripe and block are not associated, leading to inefficient data invalidation and frequent garbage collection

Engineering Contradiction:
Improveblock managementVSAvoiddata access efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The invention introduces a chunk as an intermediate unit between block and stripe, dividing the stripe into multiple chunks that correspond to blocks on individual SSDs. This segmentation allows data invalidation to be performed at the chunk level, preventing mixed valid and invalid data in blocks while maintaining stripe-level redundancy management.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10853321B2Storage system
Publication Date: 2020.12.01 KIOXIA CORP
  • US10853321B2 patent drawing
  • US10853321B2 patent drawing
  • US10853321B2 patent drawing

AI summary

A storage system includes non-volatile storage devices and a control device. Each of the storage devices is divided into blocks, and data is erased in units of the blocks. The control device includes a setting unit and a writing/reading unit. The setting unit sets first storage regions obtained by dividing a storage region for each of the storage devices and sets second storage regions obtained by dividing storage regions of all of the storage devices for all of the storage devices. The writing/reading unit manages data stored in the storage devices in units of the second storage regions. The setting unit sets each of the first storage regions so that the first storage region for at least one of the plurality of storage devices includes the entirety of one or more blocks and sets each of the second storage regions to include two or more of the first storage regions.