Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Peregrine High-Performance RPC System David B. Johnson Willy Zwaenepoel Software—Practice & Experience February 1993.

Similar presentations


Presentation on theme: "The Peregrine High-Performance RPC System David B. Johnson Willy Zwaenepoel Software—Practice & Experience February 1993."— Presentation transcript:

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

16

17 Performance

18 Single Packet Network RPC

19

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

23


Download ppt "The Peregrine High-Performance RPC System David B. Johnson Willy Zwaenepoel Software—Practice & Experience February 1993."

Similar presentations


Ads by Google