DSN-2004, Florence, Italy, July 1 st

Download Report

Transcript DSN-2004, Florence, Italy, July 1 st

Implementing Simple Replication Protocols
using CORBA Portable Interceptors
and Java Serialization
T. Bennani, L. Blain, L. Courtes, J.-C. Fabre,
M.-O. Killijian, E. Marsden, F. Taïani
Toulouse, France
DSN-2004, Florence, Italy, July 1st
Outline
1. Motivation
2. Background information
•
•
Reflection
FT-CORBA
3. Architecture and protocol
•
Primary-backup replication mechanism
4. Performance evaluation
5. Conclusion
•
DSN’04
Limits observed
2
Motivation
 Reflection as a means to implement FT
Transparent for application
 Separation of concerns

 Reflection has been introduced into middleware
CORBA Portable Interceptors
 Java Serialization

 COTS based systems are cheaper

Increasing COTS software for critical systems
 Experiment using COTS reflective mechanisms
for implementing FT
DSN’04
3
Principles of Reflection
"the ability of a system to think and act about itself"
meta-level
fault-tolerance
observation
control
meta-interfaces
base-level
original system
 separating fault-tolerance from functional concerns
DSN’04
4
From FRIENDS To DAISY
 Source-to-source trans.

C++ classes
 Add reflective features
 MetaObject Protocol
Meta Object
• Interception :
 EVENTS
• Introspection :
 STATE
• Intercession :
 ACTION
Base Object
DSN’04

Object life cycle
 Requests life cycle
 State handling
 Limits

Language dependent
 Access to source code
 External state
 Determinism
5
From FRIENDS To DAISY
 Source-to-source trans.

C++ classes
COTS
 Add reflective features
 MetaObject Protocol
FT Portable Interceptor
• Interception :
 EVENTS
• Introspection :
 STATE
• Intercession :
 ACTION
Java CORBA Object

Object life cycle
 Requests life cycle
 State handling
COTS
 Limits

Language dependent
 Access to source codeCOTS
 External state
 Determinism
 DAISY
DSN’04
6
FT-CORBA
 Augment CORBA with FT capabilities

Object Group Addressing (IOGRs)
Transparent reference to group of servers

Extensions to failover semantic
Unique request’s Ids and Retries upon request failures

Replication Management
Creation, modification of groups

Fault Management
Faults detection, report

Recovery Management
State handling and checkpointing
 Very few implementations yet
 not a COTS
DSN’04
7
The DAISY Platform
Java based Object Request Broker
IIOP Requests
Client
Server
ORB
JVM
ORB
JVM
DSN’04
8
The DAISY Platform
CORBA Portable Interceptors
REQUES
T
REQUES
T
IIOP Requests
Client
ORB
JVM
PIC
PIS
Server
ORB
JVM
 Observe, delay and retarget out/in requests/exceptions
 Cannot modify requests/replies (bad for SWIFI)
DSN’04
9
The DAISY Platform
Java Serialization
State of
Server
IIOP Requests
Client
PIC
PIS
Server
Serialization
ORB
JVM
ORB
JVM
 Save and restore state of Java objects
DSN’04
10
The DAISY Platform
Dependable Adaptive Interceptors & Serialization-based sYstem
PIS
Client
ORB
JVM
Primar
y
Server
ORB
JVM
PIC
PIS
Backu
p
Server
ORB
JVM
DSN’04
11
The DAISY Platform
Dependable Adaptive Interceptors & Serialization-based sYstem
PIS
Client
ORB
JVM
PIC
Primar
y
Server
ORB
JVM
FT
Algorith
m
PIS
Backu
p
Server
ORB
JVM
DSN’04
12
Algorithm Overview
 Primary-backup strategy
PIS
 PIC responsible for
ID requests
 Managing faults

 PIS responsible for
Requests handling
 State Management
 Replica Management

DSN’04
Primary
Server
ORB
Client
JVM
PIC
ORB
JVM
PIS
Backup
Server
ORB
JVM
13
Client Side Fault Handling
 Main role:
Exceptions
PIS
« detecting faults »
ORB
 Simple detection
scheme
 Transient
communication faults
 Upon exception
ForwardRequest trick
 N retries
 Switch to backup

DSN’04
Primary
Server
Client
JVM
PIC
ORB
JVM
PIS
Backup
Server
ORB
JVM
14
Primary Side
 Main role:
« handling requests »
PIS
ORB
 Upon request
Invoke the request
 Obtain server’s state
 Forwards to backup
Primary
Server
JVM

PIS
Backup
Server
 Request
Info
 Reply message
 State
DSN’04
ORB
JVM
15
Backup Side
 Main role:
PIS
« recover primary failures »
 Buffer and manage

« Primary packets »
 Request Info
 Reply message
 State

Apply previous one
 Upon request reception
Primary
Server
ORB
?
JVM
PIS
Backup
Server
ORB
JVM
Ping primary
 Enter recovery mode

DSN’04
16
Recovery

Crash occures when
Primary idle
2. Handling request
3. Primary packet delivered
but not the reply
1.

PIS
ORB
JVM
Case 1 & 2


Apply buffered state
Handle request
Primary
Server
PIS
Backup
Server
ORB

Case 3



JVM
Discard buffered state
Re-execute request
Multi-client more complex
DSN’04
17
Performance Evaluation
 Simple banking application
Account management
 Withdrawal, deposit, etc.

 Testbed
I686 1Ghz
 Linux 2.4
 100 Mb/s Ethernet

 1000 experiments
18
16
14
12
10
8
6
4
2
0
on
icati
Ap pl
Application
15%
Interception
7%
 1000 operations
FT Algorithms
48%
De-serialization
15%
DSN’04
Serialization
15%
18
PI Drawbacks
 Can’t modify input params

Prohibit mechanisms
 E.g. ciphering
 Can’t modify output params

Cannot forge replies
 Complexifies
implementation
 Must invoke every requests

Cannot prevent invocation
 Must raise exceptions
 PB for some mechanisms
 E.g. leader-follower
DSN’04
 Not CORBA objects

Cannot implement easily
non-functional interface
 Not transparent for the
application
 Don’t have a thread

No “I am alive” messages
 Cannot reorder requests

Limit complexity of
strategies
19
Conclusion
 Middleware standards embbed

Simple reflective mechanisms
 CORBA Portable
Interceptors
 Java Serialization

Useful for implementing
 simple
FT mechanisms
 Simple wrapping techniques
– IIOP level CRC32
– Synchronization interface (libc)
 But new generation of Portable Interceptors
More complex mechanisms (active replication)
 Better implementation
 Without being too intrusive

DSN’04
20
Implementing Simple Replication Protocols
using CORBA Portable Interceptors
and Java Serialization
T. Bennani, L. Blain, L. Courtes, J.-C. Fabre,
M.-O. Killijian, E. Marsden, F. Taïani
Toulouse, France
DSN-2004, Florence, Italy, July 1st