FTRMI: Fault-Tolerant Transparent RMI Diogo Reis and Hugo Miranda - - PowerPoint PPT Presentation

ftrmi fault tolerant transparent rmi
SMART_READER_LITE
LIVE PREVIEW

FTRMI: Fault-Tolerant Transparent RMI Diogo Reis and Hugo Miranda - - PowerPoint PPT Presentation

FTRMI: Fault-Tolerant Transparent RMI Diogo Reis and Hugo Miranda University of Lisbon LaSIGE SAC, March 28th, 2012 Remote Procedure Calls What? A simple approach for distributed computing Hides the network from the application (client and


slide-1
SLIDE 1

FTRMI: Fault-Tolerant Transparent RMI

Diogo Reis and Hugo Miranda

University of Lisbon LaSIGE

SAC, March 28th, 2012

slide-2
SLIDE 2

Remote Procedure Calls

What?

A simple approach for distributed computing Hides the network from the application (client and server) programmer Client side // Do something x=f(y); // Do more Server side int f(int y) { // Do something return z; }

slide-3
SLIDE 3

Remote Procedure Calls

Who?

Implementation examples Procedural ONC (SUN) RPCs, Web Services OO CORBA, JRMI

slide-4
SLIDE 4

Remote Procedure Calls

How?

JRMI as an example

slide-5
SLIDE 5

The Availability Limitation of RPC’s

What if server fails?

Server name is well-known Stubs cannot reroute remote calls to alternative servers

Server state would not be available at the replica

slide-6
SLIDE 6

Approaches for State-full Consistent Replication of Servers

Middleware Aware Client and server stacks cooperate to support replication Disadvantages

Clients and servers use non-standard protocol

Must run special version of the middleware

Examples

Jgroup/ARM Filterfresh FT-CORBA . . .

slide-7
SLIDE 7

Approaches for State-full Consistent Replication of Servers

Middleware Unaware Replication is hidden from the application and the middleware “Proxies” capture and (possibly) interpret the client/server traffic Disadvantages

Respecting the protocols raises limitations on the operations that can be provided

Examples

Aroma

Snoops traffic at client and server side

FTRMI

slide-8
SLIDE 8

Fault-Tolerant RMI (FTRMI)

Overview

Proxy placed on the server side

Between the standard library class and server skeleton Class with the same name and API of the original JRMI

sun.rmi.server.UnicastServerRef

  • Xbootclasspath/p

No code change at the client or server

slide-9
SLIDE 9

FTRMI Process

slide-10
SLIDE 10

FTRMI Implementation

Incoming calls Intercept remote calls before they are delivered to the server Use Linux libcap to retrieve call’s TCP/IP connection information

Sequence and Ack number IP origin and destination addresses

Deliver the call and TCP data to the Appia Group Communication Service

Appia enforces the atomic broadcast properties

slide-11
SLIDE 11

FTRMI Implementation

Calls received from clients

slide-12
SLIDE 12

FTRMI Implementation

Calls received from Appia Forward the call to skeleton Intercept the reply Prepare a TCP segment that matches the TCP expected reply at the client Send the TCP segment

Using raw sockets

slide-13
SLIDE 13

FTRMI Implementation

Handling calls received from Appia

slide-14
SLIDE 14

FTRMI Implementation

Client Transparency Client’s TCP will receive multiple copies of the reply Consider all but the first as duplicates

Discard

slide-15
SLIDE 15

FTRMI Implementation

Multiple reply handling at the clients

slide-16
SLIDE 16

Fault Tolerance

Appia protocols

Provide atomic broadcast Support for a distributed state machine Support for state synchronisation when servers recover

TCP

Duplicate detection

Case where server that received the request fails

slide-17
SLIDE 17

Evaluation

Performance

FTRMI experimented with 3 distinct total order protocols provided by Appia FTRMI-1 Regular, Coordinator-based Total Order FTRMI-2 Regular, Causal Order-based Total Order FTRMI-U Uniform Total Order And compared with 2 approaches JRMI Off-the-shelf, not replicated JRMI Jgroup/ARM middleware-aware framework

Clients and servers share a GCS

Remote procedure

int procedure(String s)

slide-18
SLIDE 18

Evaluation

Latency

2 4 6 8 10 12 14 16 18 20 22 s=2 c=2 s=2 c=4 s=3 c=3 s=3 c=6 s=4 c=4 s=4 c=8 average time (ms) s - servers, c - clients JRMI FTRMI-1 FTRMI-2 FTRMI-U Jgroup/ARM

arguments size: 2000 bytes

slide-19
SLIDE 19

Performance Results

Summary

JRMI always presents the best performance results FTRMI scales well Server-Server 4×–10× more than Client-Server traffic Some protocols don’t have a linear relation between latency and traffic

slide-20
SLIDE 20

Conclusions & Future Work

FTRMI

Transparent replication of JRMI servers

without code changes at the client or the server No need to use specialised libraries at the client side

Encouraging performance results

Future Work

Extend fault tolerance to the JRMI Registry Experiment this approach in other RPC frameworks