Per-Thread Command Identifier Pools for Threaded Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In threaded computing systems, the synchronization mechanism for command identifiers leads to performance lag due to conflicts and synchronization delays when multiple threads use a global pool of identifiers, affecting the efficiency of read/write operations.
Innovation Solution
Implementing pre-allocated pools of command identifiers for each thread, where each thread has a separate pool of unique identifiers, eliminating the need for synchronization across threads and reducing latency in command identifier assignment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a global pool of command identifiers is used with synchronization mechanism, then command identifier uniqueness is ensured across threads, but system performance deteriorates due to synchronization lag and locking delays
Solution Approach 1:
The global pool of command identifiers is segmented into multiple per-thread pools, with each thread having its own dedicated pool of identifiers. This segmentation eliminates the need for cross-thread synchronization while ensuring that each thread receives unique identifiers from its own pool, resolving the contradiction between reliability and productivity.
Solution Approach 2:
Command identifier pools are pre-allocated to each thread before execution begins. Each thread is assigned a dedicated pool of identifiers in advance, eliminating the need for runtime synchronization when acquiring identifiers. This preliminary action ensures both uniqueness and high performance.
2Reliability
If synchronization mechanism is used for global command identifier pool, then conflicts between threads are prevented, but latency in command identifier assignment increases
Solution Approach 1:
The unified command identifier pool is divided into separate per-thread pools, eliminating the need for synchronization when threads acquire identifiers. Each thread independently manages its own pool, preventing conflicts without incurring synchronization latency.
Solution Approach 2:
The synchronization mechanism is extracted and removed from the command identifier assignment process. By giving each thread its own dedicated pool, the need for synchronization is completely eliminated, achieving both conflict prevention and zero synchronization latency.
3Ease of operation
If each thread uses native command management with locally unique identifiers, then thread independence is maintained, but command identifier conflicts occur when multiple commands with same identifier are in transit to common resource
Solution Approach 1:
The solution merges the benefits of both approaches: thread-independent local management with globally unique identifiers. Each thread independently manages its own dedicated pool of identifiers, maintaining thread independence while ensuring global uniqueness across all threads through the use of separate per-thread pools.
Data Source
AI summary
Systems and methods for threaded computing systems using allocated command identifier pools for command management are described. Command requests for different processing threads are received. Based on the thread assigned to process the command request, command identifiers are assigned from different pools of command identifiers for each thread, where each pool contains non-overlapping sets of command identifiers. The command identifiers are returned to the same pool that the command identifier came from upon completion of each command.


