Flash Storage Scheduler Segments Write Requests
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network storage devices with SSD-only systems face challenges in minimizing read latency and maximizing write throughput due to the significant difference in write and read latencies, where large write requests can slow down read requests and vice versa, leading to inefficient processing.
Innovation Solution
Implementing a scheduler module that breaks down write and read requests into chunklets of predetermined sizes, allowing for simultaneous processing of multiple chunklet-size write requests and segmenting large requests to prevent latency issues, thereby optimizing SSD performance by ensuring that each flash plane handles only one write request at a time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If large write requests are processed by the SSD, then write throughput is improved, but read latency increases significantly
Solution Approach 1:
The patent segments large write requests into smaller chunklets of predetermined size (e.g., 64KB). The chunklet processor divides incoming write requests into multiple chunklets that can be processed independently and interleaved with read requests, preventing large writes from monopolizing the SSD and reducing read latency.
Solution Approach 2:
The scheduler dynamically adjusts the processing order of write chunklets and read requests based on current system state. It implements adaptive scheduling that can switch between processing write chunklets and servicing read requests, optimizing the balance between write throughput and read latency in real-time.
2Productivity
If multiple write requests are processed simultaneously, then write throughput is maximized, but read requests are delayed
Solution Approach 1:
Write requests are segmented into chunklets that can be processed in parallel with read requests. The chunklet processor creates multiple independent write chunklets from a single large write request, allowing the scheduler to interleave processing of write chunklets and read requests, thus maintaining write throughput while reducing read delays.
Solution Approach 2:
The scheduler ensures continuous utilization of the SSD by maintaining a pipeline of both write chunklets and read requests. When read requests are being processed, write chunklets are prepared and queued, and vice versa, ensuring the SSD is continuously productive without idle periods while balancing both operation types.
3Productivity
If write requests are processed before read requests, then write throughput is improved, but read latency increases
Solution Approach 1:
The chunklet processor performs preliminary segmentation of write requests into chunklets before they reach the scheduler. This pre-processing allows the scheduler to immediately interleave read requests with write chunklet processing without waiting for complete write requests, reducing read latency while maintaining write throughput.
Solution Approach 2:
The scheduler implements dynamic priority adjustment based on request type and system state. It can elevate read request priority when write chunklets are being processed, and vice versa, creating a flexible scheduling mechanism that optimizes the balance between write throughput and read latency in real-time based on current workload conditions.
Data Source
AI summary
In an all-flash storage array, write requests can take about 9 to 10 times longer than a read request of the same size. There could be several problems when reading or writing from all-flash storage, such as a large write request slowing down small read requests, or other write requests. Also, a large read request may slow down smaller read requests by filling the incoming requests queue. In one implementation, a determination is made on what is the maximum size of a request to flash storage that improves the throughput of a flash chip (e.g., write requests beyond a certain size do not improve throughput). A chunklet is defined as a block of data having the calculated maximum size. As write requests come in, the write requests are broken into chunklets, and then the chunklets are queued for processing by the flash chip. One chunklet is processed at a time per write request. This way, one write request does not monopolize the use of the flash chip for a period of time, allowing other requests to be queued while the chunklet is being processed by the all-flash storage.


