RPC Frame Multiplexing for Connection Saturation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing RPC implementations face issues with exclusive connection use, authentication and authorization challenges in untrusted environments, and inefficient load balancing for non-authoritative servers, leading to saturation, prioritization difficulties, and fragmentation of trust relationships.

Innovation Solution

The solution involves chunking RPC payloads into frames with identifiers for multiplexing over connections, enabling load balancing and authentication/authorization enforcement by an authoritative endpoint, and implementing load-shedding algorithms to manage connection lifetimes and prioritize RPCs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If RPC connections are used exclusively for single RPC requests, then authentication and authorization can be properly enforced, but connection saturation occurs and subsequent RPCs cannot be prioritized

Engineering Contradiction:
Improveauthentication and authorization enforcementVSAvoidconnection utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The RPC payload is segmented into multiple frames (header frame and data frames) that can be transmitted independently over the same connection. This segmentation allows the connection to handle multiple RPC requests by interleaving frames from different RPCs, thereby improving connection utilization while maintaining the ability to enforce authentication and authorization at the connection level.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically manages frame transmission by assigning priorities to different RPC requests and adjusting the transmission order of frames accordingly. High-priority RPC frames can be sent before lower-priority ones, enabling dynamic prioritization without requiring exclusive connection use for each RPC.

Inventive Principle:
Principle #15Dynamics

2Reliability

If authentication and authorization are implemented at the RPC server level, then trust relationships can be enforced, but it becomes difficult to run RPC servers in untrusted environments

Engineering Contradiction:
Improvetrust relationship enforcementVSAvoiddeployment flexibility in untrusted environments
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system introduces an intermediary authentication mechanism where the RPC client establishes an authenticated connection with the RPC server, and this authenticated context is then carried through the framed payload transmission. This allows the RPC server to run in untrusted environments while maintaining security through the intermediary authentication layer at the connection level.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If traditional load balancing is used for non-authoritative RPC servers, then initial connections can be distributed, but connections become overused as servers get loaded making load balancing ineffective

Engineering Contradiction:
Improveinitial connection distributionVSAvoidload balancing effectiveness under load
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system implements feedback mechanisms where the RPC server monitors its load and communicates this information back to the load balancer. Based on this feedback, the load balancer can dynamically adjust its distribution strategy, preventing connection overuse by redirecting new RPC requests to less loaded servers while maintaining effective initial connection distribution.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10567551B1System and method for improving infrastructure to infrastructure communications
Publication Date: 2020.02.18 GOOGLE LLC
  • US10567551B1 patent drawing
  • US10567551B1 patent drawing
  • US10567551B1 patent drawing

AI summary

Systems and methods are provided for improving communications between infrastructures using RPCs. An authoritative endpoint in a first infrastructure receives a registration request from a non-authoritative server in a second infrastructure through a transport layer on which a remote procedure call (RPC) layer depends. This request establishes a connection with the authoritative endpoint. The authoritative entity authenticates and registers the non-authoritative entity, and receives RPCs from client devices through the non-authoritative entity. The authoritative entity provides responses to the RPCs through the non-authoritative entity over the established connection. The authoritative entity also performed load-shedding operations, such as notifying the non-authoritative entity of a time to live of the connection. The RPC requests and responses sent over the connection may be chunked into frames, each frame identifying a stream to which it belongs.