RPC Fragmentation for Wide-Area State Machine Replication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Large proposals in state machine replication protocols face challenges in wide-area implementations due to slow transmission over low-bandwidth links, leading to potential timeouts and leaderlessness, especially in cases of congestion or failures.
Innovation Solution
Splitting large proposals into multiple fragments for individual transmission, with acknowledgments and message references to ensure correctness and liveness, allowing for out-of-order and out-of-band transmission while verifying quality of service.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If large proposals are transmitted as indivisible units, then correctness of state machine replication is maintained, but transmission time increases and timeouts occur more frequently
Solution Approach 1:
The patent divides large proposals into smaller fragments that can be transmitted individually. Each fragment is sent as a separate message, allowing parallel transmission and reducing the time for any single fragment to be transmitted. The receiver reassembles the fragments in the correct order to reconstruct the original proposal, maintaining correctness while reducing transmission time and timeout frequency.
2Adaptability or versatility
If proposals are transmitted over wide-area low-bandwidth links, then system scalability is improved, but transmission speed decreases and congestion impact increases
Solution Approach 1:
By segmenting large proposals into smaller fragments, the system can efficiently transmit data over wide-area low-bandwidth links. The smaller fragment size reduces transmission time for each message, minimizes the impact of network congestion, and allows for better utilization of available bandwidth across distributed replicas.
Solution Approach 2:
The patent implements periodic acknowledgments between sender and receiver for each fragment transmitted. This periodic feedback mechanism allows the system to detect transmission issues early, manage retransmissions efficiently, and maintain liveness even over slow wide-area links by providing regular status updates.
3Reliability
If timeout thresholds are set for proposal transmission, then liveness is maintained, but large proposals may timeout prematurely during congestion
Solution Approach 1:
Segmenting proposals into fragments with individual timeout thresholds allows the system to maintain liveness by timing out only stalled fragments rather than the entire proposal. This granular approach prevents premature timeout of large proposals during temporary congestion, as the timeout applies to small fragments rather than the complete large proposal.
Solution Approach 2:
The periodic acknowledgment mechanism provides continuous feedback on fragment transmission progress. This allows the system to distinguish between temporary delays and actual transmission failures, maintaining liveness by enabling targeted retransmission of only the problematic fragments while keeping the overall proposal alive.
4Productivity
If fragments are transmitted individually, then transmission efficiency improves, but complexity of ensuring correct reassembly increases
Solution Approach 1:
The segmentation approach transmits proposals as numbered fragments with sequence information, enabling parallel transmission and improving efficiency. The receiver uses the fragment numbers and sequence information to automatically reassemble fragments in the correct order, managing complexity through structured data formats rather than complex coordination protocols.
Data Source
AI summary
Systems and methods are provided for sending and receiving remote procedure calls (RPCs). Based on a message in a first RPC, a second set of RPCs are created by one or more computing devices, where each of the second set of RPCs includes a portion of the message in the first RPC. The message in the first RPC is replaced with a reference to each RPC of the second set of RPCs. The one or more computing devices send the first RPC with the references, and also send the second set of RPCs.


