RPC Manager Batching for Thread Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveRPC procedure executionVSAvoidprocessor utilization
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple threads generate RPC requests simultaneously, then processor utilization improves, but communication overhead increases due to individual request handling

Engineering Contradiction:
Improveprocessor utilizationVSAvoidcommunication overhead
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #5Merging (Combining)

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

Engineering Contradiction:
ImproveRPC execution order managementVSAvoidRPC procedure efficiency
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3282357B1Apparatus and method for running plurality of threads
Publication Date: 2023.10.11 HUAWEI TECH CO LTD
  • EP3282357B1 patent drawingFigure 1
  • EP3282357B1 patent drawingFigure 2
  • EP3282357B1 patent drawingFigure 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.