Stream Tagging Across SSD Controllers for Garbage Collection Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Solid state storage devices (SSDs) face high latency issues due to garbage collection operations, which can significantly increase the time required for read requests when blocks are being erased, leading to performance degradation and increased latency for valid pages.
Innovation Solution
Implementing a streaming module within the storage server's I/O controller to manage data streams across multiple controllers, assigning unique stream tags to write requests based on attribute values, allowing SSDs to reserve blocks for data with similar lifespans, thereby minimizing the need for page movement during garbage collection and reducing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If garbage collection operations are performed on SSD blocks to consolidate pages, then the SSD can make blocks available for new writes, but access to multiple blocks is prevented for a significant period of time, increasing latency for subsequent read requests
Solution Approach 1:
The system performs preliminary actions by predicting which pages will become invalid before garbage collection occurs. Write commands are pre-assigned to blocks based on predicted invalidation patterns, so when garbage collection happens, the valid pages can be quickly identified and preserved without blocking the entire block for extended periods.
Solution Approach 2:
The system segments the SSD storage into multiple blocks and uses stream tags to organize write commands into different segments. This allows garbage collection to be performed on individual blocks or segments independently, rather than preventing access to all blocks simultaneously, thereby reducing the overall impact on read latency.
2Productivity
If stream tags are used to direct writes to specific blocks, then pages with similar lifespans are grouped together, but this requires tracking and managing stream tags across multiple controllers and SSDs
Solution Approach 1:
The stream tag mechanism is designed as a universal system that works across multiple controllers and SSDs. The same stream tag assignment logic and tracking methods are applied consistently throughout the storage array, allowing the system to manage streams uniformly regardless of which controller or SSD is involved, thereby reducing the perceived complexity.
Solution Approach 2:
The system introduces an intermediary layer (the stream tag assignment mechanism) that sits between the write commands and the physical blocks. This intermediary handles the complexity of tracking and managing stream assignments, translating high-level write requests into block-specific commands while maintaining the stream organization across multiple controllers and devices.
Data Source
AI summary
A processing device of a storage server that manages a plurality of SSDs receives a request to write data. The processing device determines one or more attributes associated with the request, generates a stream tag for the request based on the one or more attributes, and sends a first write command to a first SSD of the plurality of SSDs. The first write command comprises at least a portion of the data and the stream tag that causes the first SSD to write the portion of the data to a first stream block of the first SSD.


