Userspace Storage Driver Multi-Queue Segmentation for Lock Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data storage systems with multiple parallel processing cores experience performance limitations due to lock contention when handling a large number of low-level I/O operations, especially with modern flash-based drives that can process numerous operations per second.

Innovation Solution

Implementing multiple queues within a userspace scheduling driver in a userspace container to reduce lock contention, allowing for efficient queuing and communication with a kernel-based hardware driver through a kernel helper driver, enabling portability and fast failover in case of driver stack failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple parallel processing cores are used to handle I/O operations, then processing capacity is improved, but lock contention on the queue increases causing performance degradation

Engineering Contradiction:
Improveprocessing capacityVSAvoidperformance stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent divides the single shared I/O queue into multiple separate queues, with each queue dedicated to a specific processing core. This segmentation eliminates lock contention between cores since each core has its own queue, allowing parallel processing without performance degradation from locking mechanisms.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If a single queue is used for I/O operations, then device complexity is reduced, but lock contention causes performance limitations

Engineering Contradiction:
Improvequeue structureVSAvoidI/O processing speed
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the single queue into multiple per-core queues, where each queue is dedicated to a specific processing core. This increases processing speed by eliminating lock contention while the added complexity is managed through systematic queue assignment and a coordination mechanism for load balancing.

Inventive Principle:
Principle #1Segmentation

3Productivity

If modern flash-based drives capable of processing several hundred thousand I/O operations per second are used, then storage throughput is improved, but the single queue with lock contention becomes a bottleneck

Engineering Contradiction:
Improvestorage throughputVSAvoidI/O operation speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments the I/O queue into multiple per-core queues to match the parallel processing capability of modern flash-based drives. This allows the storage system to充分利用 the high throughput capability of flash drives by eliminating the single-queue bottleneck and enabling multiple cores to submit I/O operations simultaneously without lock contention.

Inventive Principle:
Principle #1Segmentation

4Reliability

If kernel-based drivers are used for storage management, then system stability is improved, but portability and failover capability are reduced

Engineering Contradiction:
Improvesystem stabilityVSAvoidportability and failover capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a userspace driver as an intermediary layer between the application and the kernel-based hardware driver. This userspace driver implements the multi-queue mechanism and can be easily replaced or migrated, providing portability and fast failover capability while the underlying kernel driver maintains system stability through proven hardware interface management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10795611B2Employing multiple queueing structures within a userspace storage driver to increase speed
Publication Date: 2020.10.06 EMC IP HLDG CO LLC
  • US10795611B2 patent drawing
  • US10795611B2 patent drawing

AI summary

Performance in multi-core data storage systems is increased while allowing for portability and fast failover in the event of a failure of a driver stack by a data storage system employing several queues to reduce lock contention. Queueing is performed with two levels of several queues each within a userspace scheduling driver within a userspace container. The userspace scheduling driver may dequeue into a userspace management driver that communicates with a kernel-based hardware driver by way of a kernel helper driver. An apparatus, system, and computer program product for performing a similar method are also provided.