Dedicated Storage Queues for High-Parallelism Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing queue management systems in persistent storage devices lead to inefficiencies in throughput and latency due to underutilization of hardware queues and shared queue access among multiple threads.
Innovation Solution
Implementing dedicated block device queues per storage object, allowing each thread to have a unique queue for file access, and dynamically managing queue creation and assignment based on system load and resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple threads share common queues for persistent storage operations, then device complexity is reduced, but throughput decreases and latency increases due to queue contention
Solution Approach 1:
The patent segments the shared queue system into multiple dedicated block device queues, with each queue assigned to specific threads or storage objects. This segmentation eliminates queue contention between threads while maintaining manageable complexity through structured queue assignment and a queue map for tracking queue states.
2Productivity
If dedicated block device queues are created for each storage object, then queue utilization is optimized and throughput improves, but device complexity increases due to dynamic queue management
Solution Approach 1:
The patent implements dynamic queue management where block device queues are created, activated, and deactivated based on runtime conditions such as thread creation, storage object access patterns, and system load. The queue map dynamically tracks queue states and enables flexible assignment, allowing the system to adapt to changing workloads while maintaining optimal queue utilization.
3Productivity
If hardware queues are underutilized in existing systems, then device complexity remains low, but productivity decreases due to insufficient parallelism
Solution Approach 1:
The patent makes hardware queues universally accessible to multiple threads through dedicated block device queue assignments. Each thread can have its own dedicated queue or share queues based on workload characteristics, enabling full utilization of hardware parallelism while maintaining flexible adaptability to different access patterns and storage objects.
4Loss of time
If shared queues are used among multiple threads, then ease of operation is maintained, but latency increases due to queue access contention
Solution Approach 1:
By segmenting queues into dedicated block device queues for different threads and storage objects, the patent eliminates contention-based latency while preserving ease of operation through the queue map abstraction. The queue map provides a simple interface for threads to access their assigned queues without complex synchronization, reducing latency while maintaining operational simplicity.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
A system and method for managing queues for persistent storage. In some embodiments, the method includes opening, by a first thread running in a host, a first storage object; and creating, by the host, in a memory of the host, a first block device queue, the first block device queue being dedicated to the first storage object.