Flash Storage Scheduler Segments Write Requests

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Productivity

If large write requests are processed by the SSD, then write throughput is improved, but read latency increases significantly

Engineering Contradiction:
Improvewrite throughputVSAvoidread latency
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

2Productivity

If multiple write requests are processed simultaneously, then write throughput is maximized, but read requests are delayed

Engineering Contradiction:
Improvewrite throughputVSAvoidread latency
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If write requests are processed before read requests, then write throughput is improved, but read latency increases

Engineering Contradiction:
Improvewrite throughputVSAvoidread latency
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10042563B2Segmenting read requests and interleaving segmented read and write requests to reduce latency and maximize throughput in a flash storage device
Publication Date: 2018.08.07 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10042563B2 patent drawing
  • US10042563B2 patent drawing
  • US10042563B2 patent drawing

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.