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