Kyu Hou - CMU ECE

Download Report

Transcript Kyu Hou - CMU ECE

The Project Presentation
April 28, 2006
18-749: Fault-Tolerant Distributed Systems
Team 7-Sixers
Kyu Hou
Minho Jeung
Wangbong Lee
Heejoon Jung
Wen Shu Tang
Members
Kyu Hou
Wen Shu Tang
Wangbong Lee
[email protected]
MSE
[email protected]
ECE
[email protected]
MSE
Min Ho Jeung
[email protected]
MSE
Heejoon Jung
[email protected]
MSIT-SE
http://www.ece.cmu.edu/~ece749/teams-06/team7/
2
Baseline Application

Express Bus Ticket Center

Application
Online express bus ticketing application

Configuration
Operating System: Linux servers
Programming Language: Java
Database: MySQL
• Middleware: CORBA
•
•
•

Baseline Application Feature
Users can retrieve bus schedules and tickets.
Users can buy tickets.
• Users can cancel the tickets.
•
•
3
Baseline Architecture
Allocation View-Deployment Style
①
②
①
Database
④
④
③
Bus Ticket System
Pool of Customers
Legend
Client
Server
Internet
Database
Request Call
Response Call
Request Query
Response Query
4
Baseline Architecture
Allocation View-Deployment Style
①
Client
User
Interface CORBA
Interface
④
Pool of Customers
Server Business
CORBA
Logic
Interface
JDBC
②
MySQL
③
Database
Bus Ticket System
Legend
Client
Server
Database
Request Call
Response Call
Request Query
Response Query
5
Fault-Tolerance Goals


Client requests should be preserved, when exception is occurred.
Replication

There are 2 copies of server which perform same operations for faulttolerance on the chess and risk machine.
 Replication Type
 Active Replication
 Advantage: Performance
 Disadvantage: More memory and processing cost
 State
 Stateless
 We stored the state into database.
 Replication Manager
 No specific replication manager exists.
 As soon as client application begins, the application acquires the
replication informaion which is stored in Naming Server.

Elements of Fault-Tolerance Framework


Global Manager: Heartbeat
Recovery Manager
 Re-instantiating a failed replication
 The recovery result is written into a log file in Database.
 Fault injector: Shell
6
FT-Baseline Architecture
Primary Server Host: chess
CHESS
or
bd
Bus
Server
Database Server; mahjongg
Recovery
mahjongg
CLUE
Secondary Server Host: risk
RISK
Bus
Server
OTHELLO

Recovery
Global
Recovery
Scenario
1. Client requests the names of server to the naming server.
2. The naming server sends the names of servers.
3. Client sends its state to all servers.
a. When the client receives an exception message, then the fault is detected.
b. The client will communicate with another replication server.
4. All servers send the results to clients.
5. Client receives the results, and checks duplication.
7
Mechanisms for Fail-Over

Exception Cases

Server_Timeout


Database_Timeout:



Checked by using connection pool
Dead_Server


Checked by using thread pool
Solved by using heartbeat (check servers per 2 seconds)
Global Recovery Manager: Heartbeat
When do you obtain the names of the server references?
What if you run out of live references?
Performance measurement


48 Configurations
Buy and cancel ticket
9
us
Performance measurement
Performance measurement
Performance measurement
Performance measurement
Component break down
Fault Injection measurements
1 Client
 1000 requests
 Cancel ticket request

Performance measurement w/o fault injection
RT-FT Baseline Architecture
Active

Server side
Chess
or
bd
Client
BusSer
ver
Database Server; mahjongg
Reco
very
mahjongg
CLUE
RISK
BusSer
ver
Reco
very
<HeartBeat>
OTHELLO
GlobalR
ecovery
17
RT-FT Performance Strategy

Thread Pool
We need to avoid the overhead of thread creation for each request.
 Create a number of threads at initialize time



Without Thread Pool


AVG RTT: 47.5 msec
With Thread Pool


Dynamic configuration
AVR RTT: 38.1 msec
Improve the performance about 20%
18
RT-FT Performance Measurement

Thread Pool / No Thread Pool
19
Other Feature

List other features
Fault Injector – Shell Script
Log4j – Logging information
 Apach DB Connection Pool (DBCP)



What lessons by other features?



Useful utilities
Improve performance by DBCP
Powerful shell scripts
20