RPC Manager Batching for Thread Concurrency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current RPC procedures are inefficient due to continuous processor occupation by a single thread waiting for responses, leading to low efficiency when multiple threads generate RPC requests, as the processor is occupied for extended periods, hindering other threads' usage.
Innovation Solution
An apparatus and method that orders and batches RPC requests, allowing simultaneous sending and processing, with an RPC manager determining the order based on generation time and object association, reducing communication overhead and enabling timely processor utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a single thread sends RPC requests and waits for responses, then the RPC procedure is executed sequentially, but the processor is occupied for extended periods and cannot be used by other threads
Solution Approach 1:
The patent segments the RPC request processing by separating request sending from response waiting. Multiple threads can generate and send RPC requests without blocking, as the RPC manager handles response collection and distribution. This segmentation allows the processor to remain productive while RPC procedures are executed reliably.
Solution Approach 2:
The RPC manager acts as an intermediary between client threads and the RPC mechanism. It receives RPC requests from multiple threads, manages the batching and ordering, and distributes responses back to the appropriate threads. This intermediary approach enables concurrent request processing while maintaining reliable execution semantics.
2Productivity
If multiple threads generate RPC requests simultaneously, then processor utilization improves, but communication overhead increases due to individual request handling
Solution Approach 1:
The patent merges multiple individual RPC requests into a single batched RPC call. The RPC manager collects requests from multiple threads and combines them into one communication transaction with the remote server. This merging significantly reduces communication overhead while maintaining high processor utilization through concurrent request generation.
3Ease of operation
If RPC requests are sent individually, then the execution order is simple, but the communication overhead is significant and efficiency is low
Solution Approach 1:
The RPC manager performs preliminary actions by collecting and ordering RPC requests before sending them in a batch. Requests are pre-processed, ordered according to their generation time or other criteria, and prepared for efficient batch transmission. This preliminary organization maintains clear execution order semantics while improving overall RPC procedure efficiency.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention proposes an apparatus and method for running a plurality of threads. The apparatus includes a memory, a client and an RPC manager. The client is configured to generate, for each of the plurality of threads an RPC request for executing an operation and to store the generated RPC requests in a database in the memory. The RPC manager is configured to order the stored RPC requests. Furthermore, the client is configured to send the ordered RPC requests in an RPC batch.