Task Dispatcher for Block Storage Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing protocol stacks for block storage devices experience latency due to asynchronous operation of layers, leading to inefficiencies in memory access requests, which affects the performance of applications relying on these systems.

Innovation Solution

Implementing a task dispatcher that manages execution using a common thread pool across multiple layers of the protocol stack, allowing a single thread to expedite processing through the stack by calling methods of different layers, thereby reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If each layer of the protocol stack operates asynchronously with separate thread pools, then each layer can process tasks independently, but latency increases due to delays when forwarding requests between layers

Engineering Contradiction:
Improveindependent processing capabilityVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges multiple separate thread pools into a single shared thread pool that serves all layers of the protocol stack. This allows a single thread to process tasks across multiple layers sequentially without the overhead of inter-thread communication and task queue transfers, thereby reducing latency while maintaining independent processing capability through logical layer separation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared thread pool implements multi-functionality by enabling threads to handle tasks at different protocol stack layers. Instead of dedicating specific threads to specific layers, the universal thread pool can dynamically assign threads to process tasks at any layer, improving resource utilization and reducing the overall processing time for memory access requests.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Loss of time

If a single thread processes tasks across multiple layers of the protocol stack, then latency is reduced through expedited processing, but thread resource requirements increase

Engineering Contradiction:
ImprovelatencyVSAvoidthread pool management
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent changes the parameter of thread pool structure from multiple separate pools to a single shared pool. This parameter change reduces the complexity of inter-pool communication and task management while enabling faster task processing. The shared pool simplifies the system architecture by eliminating the need for complex coordination between multiple independent thread pools, thereby reducing device complexity despite the increased versatility of individual threads.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10176023B2Task dispatcher for block storage devices
Publication Date: 2019.01.08 SCALE COMPUTING INC
  • US10176023B2 patent drawing
  • US10176023B2 patent drawing
  • US10176023B2 patent drawing

AI summary

A system, method, and computer program product are provided for implementing a protocol stack for handling memory access requests associated with one or more block devices. The method includes the steps of allocating a thread to process a task associated with a memory access request for a block device; and executing the thread to process the task, wherein the thread implements a state machine that manages calls to two or more layers of the protocol stack. A task dispatcher is implemented for managing the execution of tasks using at least one thread pool, the tasks managing the calls to the various layers of the protocol stack. The protocol stack may implement abstraction layers for virtual storage devices as well as the real block devices.