RPC Stubs Skip Marshalling When Endianness Matches
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing RPC tools incur overhead due to marshalling and un-marshalling processes, which are resource-intensive and inefficient, especially when dealing with heterogeneous systems requiring conversion between different endianness formats.
Innovation Solution
The system generates stubs for RPCs that do not perform marshalling or un-marshalling when the endianness of the servers is the same, instead indicating endianness through a byte in the message header, and uses a modified TLV format to encode data structures, allowing direct data transfer without conversion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If marshalling and un-marshalling processes are performed for all RPC data transmission, then data compatibility between heterogeneous systems is ensured, but resource utilization increases and efficiency decreases
Solution Approach 1:
The patent applies local quality by making the marshalling process selective rather than universal. The system checks the endianness of the remote server and only performs marshalling when necessary (when endianness differs). This resolves the contradiction by ensuring data compatibility only where needed while avoiding unnecessary processing overhead when endianness matches, thus improving RPC efficiency without sacrificing reliability.
2Adaptability or versatility
If endianness conversion is performed for all RPC calls, then compatibility between heterogeneous systems is maintained, but runtime increases due to conversion overhead
Solution Approach 1:
The patent applies preliminary action by checking the endianness of the remote server in advance (before data transmission) and caching this information. This allows the system to determine whether conversion is needed beforehand, avoiding unnecessary endianness conversion operations during actual RPC execution. The preliminary check maintains system compatibility while significantly reducing RPC runtime by eliminating redundant conversion overhead.
3Adaptability or versatility
If TLV encoding scheme is used for all data structures, then API versioning support is enabled, but overhead of conversion between TLV and raw data structure increases
Solution Approach 1:
The patent applies local quality by making TLV encoding selective rather than universal. The system uses TLV encoding only when API versioning is required or when data structure compatibility needs to be maintained across different versions. For straightforward data transmissions where versioning is not needed, the system uses direct raw data structure transmission. This resolves the contradiction by providing API versioning support where necessary while avoiding the conversion overhead associated with TLV encoding in unnecessary cases.
Data Source
AI summary
In one embodiment, a system includes at least one processor and logic integrated with and/or executable by the processor, the logic being configured to instantiate, using an interface definition language (IDL) on a first server, a remote procedure call (RPC) function to exchange information between the first server and a second server, generate at least one stub on the first server using the RPC, and generate at least one stub on the second server using the RPC, wherein the at least one stub generated on the second server does not perform any marshalling or un-marshaling of data when endianess of the two servers is the same. Other systems, methods, and computer program products for exchanging information between servers using RPCs are described in more embodiments.


