Userspace Storage Driver Multi-Queue Segmentation for Lock Contention
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Device complexity
If a single queue is used for I/O operations, then device complexity is reduced, but lock contention causes performance limitations
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.
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
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.
4Reliability
If kernel-based drivers are used for storage management, then system stability is improved, but portability and failover capability are reduced
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.
Data Source
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.

