Download presentation
Presentation is loading. Please wait.
Published byAbner Copeland Modified over 9 years ago
1
The Peregrine High-Performance RPC System David B. Johnson Willy Zwaenepoel Software—Practice & Experience February 1993.
2
Client Server Models Request Reply Function calling Request Response Client Server
3
Benefits of RPC Network programming made easy RPC package takes care of timeouts, out of order packets RPC package takes care of data translation
4
Server RPC Model ClientClient-stubRuntime Server-stub call packetresult packet call work return pack result unpack argument receive transmit receive unpack result pack argument local return local call
5
RPC Issues Pass by reference Binding functions
6
Parameter Types In In-out Out
7
Key RPC Optimizations in Peregrine Arguments (results) are directly transmitted from client (server) address space No data representation conversion Both call and return packets are transmitted using pre-allocated headers No thread specific state is saved after the execution of call at the server Arguments are mapped into the server address space avoiding copying Multi-packet argument transmission avoids copying in critical path
8
Peregrine Implementation Peregrine kernel Component OS kernel IP RPC STUB/SKEL Rpc protocol
9
Hardware Requirements “gather” DMA Page remapping
10
Packet Header Type service IP total length IP identificationFrag. offset Source IP Destination IP RPC packet typeRPC Packet data length Packet sequence number Client Identifier Server Identifier Procedure number IHL flags Call sequence number RPC total message length TTLCheck Sum Version
11
Role of Stubs Client Stub Kernel trap to send call message and return Builds buffer descriptors Data translation Server Stub Call server procedure kernel trap to return results.
12
Sending the packet RPC
13
Receiving the RPC packet
14
Result packet Sending the result packet Stub builds descriptors Kills server thread Receiving the result packet In-out and out buffers are copied
15
Multi Packet RPC Blast Beginning of argument list is sent last all others in order
17
Performance
18
Single Packet Network RPC
20
Multi packet Network RPC
21
Effectiveness of Optimizations Arguments (results) are directly transmitted from client (server) address space No data representation conversion Both call and return packets are transmitted using pre-allocated headers No thread specific state is saved after the execution of call at the server Arguments are mapped into the server address space avoiding copying Multi-packet argument transmission avoids copying in critical path
22
Peregrine VS the rest
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.