Task Dispatcher for Block Storage Latency
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
Data Source
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.


