Team 2: The House Party Blackjack Mohammad Ahmad Jun Han Joohoon Lee Paul Cheong Suk Chan Kang.

Slides:



Advertisements
Similar presentations
Pontus Boström and Marina Waldén Åbo Akademi University/ TUCS Development of Fault Tolerant Grid Applications Using Distributed B.
Advertisements

Chapter 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University Building Dependable Distributed Systems.
The Case for Drill-Ready Cloud Computing Vision Paper Tanakorn Leesatapornwongsa and Haryadi S. Gunawi 1.
Enterprise Job Scheduling for Clustered Environments Stratos Paulakis, Vassileios Tsetsos, and Stathes Hadjiefthymiades P ervasive C omputing R esearch.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
High Availability 24 hours a day, 7 days a week, 365 days a year… Vik Nagjee Product Manager, Core Technologies InterSystems Corporation.
Online Educational Game of Snakes and Ladders -Shalini Pradhan -Manali Joshi -Uttara Paingankar -Seema Joshi.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Caching the MDSPlus Data via Hibernate By Ajith M Jose Comp6703 Project Client: Raju Karia Supervisor: Dr. Henry Gardner (Development of “WebScope”)
Team 1: Box Office : Analysis of Software Artifacts : Dependability Analysis of Middleware JunSuk Oh, YounBok Lee, KwangChun Lee, SoYoung Kim,
Chris Shuster 4/29/2009 1Chris Shuster.  Application Servers ◦ Backend processing platform. ◦ Multiple platforms, operating system and architecture.
Team 6: Slackers 18749: Fault Tolerant Distributed Systems Team Members Puneet Aggarwal Karim Jamal Steven Lawrance Hyunwoo Kim Tanmay Sinha.
1 Philippe. Team 3: Spam’n’Beans : Analysis of Software Artifacts : Dependability Analysis of Middleware Gary Ackley Andrew Boyer Charles.
Team 4: : Fault-Tolerant Distributed Systems Bryan Murawski Meg Hyland Jon Gray Joseph Trapasso Prameet Shah Michael Mishkin.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
National Manager Database Services
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
Włodzimierz Funika, Filip Szura Automation of decision making for monitoring systems.
Distributed Data Stores – Facebook Presented by Ben Gooding University of Arkansas – April 21, 2015.
Distributed Deadlocks and Transaction Recovery.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
High-Availability Methods Lesson 25. Skills Matrix.
INFM 603: Information Technology and Organizational Context Jimmy Lin The iSchool University of Maryland Thursday, October 18, 2012 Session 7: PHP.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
1 J2EE Components. 2 Application Servers relieve the programming burden for business distributed components. They provide support for system level services.
Glink: GCOS e-business in an application server architecture Summit 2000, Jim Gallagher.
Oracle10g RAC Service Architecture Overview of Real Application Cluster Ready Services, Nodeapps, and User Defined Services.
Advanced Java Session 7 New York University School of Continuing and Professional Studies.
Distributed File Systems
Bologna, September 2003 Giorgia Lodi Department of Computer Science University of Bologna V.Ghini, F. Panzieri.
Replication & EJB Graham Morgan. EJB goals Ease development of applications –Hide low-level details such as transactions. Provide framework defining the.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Introduction to J2EE Architecture Portions by Kunal Mehta.
TDDD05 EJB Lab (Part of slides reused from Mikhail’s) Lu Li
J2EE Structure & Definitions Catie Welsh CSE 432
High-Availability MySQL DB based on DRBD-Heartbeat Ming Yue September 27, 2007 September 27, 2007.
Team 5: Virtual Online Blackjack : Analysis of Software Artifacts : Dependability Analysis of Middleware Philip Bianco John Robert Vorachat.
FailSafe SGI’s High Availability Solution Mayank Vasa MTS, Linux FailSafe Gatekeeper
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
Collaborate Lesson 4C / Slide 1 of 22 Collaborate Knowledge Byte In this section, you will learn about: The EJB timer service Message linking in EJB 2.1.
Server to Server Communication Redis as an enabler Orion Free
Fast Crash Recovery in RAMCloud. Motivation The role of DRAM has been increasing – Facebook used 150TB of DRAM For 200TB of disk storage However, there.
EEC 688/788 Secure and Dependable Computing Lecture 8 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Implementing Simple Replication Protocols using CORBA Portable Interceptors and Java Serialization T. Bennani, L. Blain, L. Courtes, J.-C. Fabre, M.-O.
Plug-in for Singleton Service in Clustered environment and improving failure detection methodology Advisor:By: Dr. Chung-E-WangSrinivasa c Kodali Department.
The Process Manager in the ATLAS DAQ System G. Avolio, M. Dobson, G. Lehmann Miotto, M. Wiesmann (CERN)
Quick Messaging Service John Sung. Objective Use Demeter/Java to the fullest –Use COOL for coordination –Use RIDL for RMI Ability to send messages “instantly”
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
The Project Presentation April 28, : Fault-Tolerant Distributed Systems Team 7-Sixers Kyu Hou Minho Jeung Wangbong Lee Heejoon Jung Wen Shu.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
1 Distributed Systems Distributed Object-Based Systems Chapter 10.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
EJB Enterprise Java Beans JAVA Enterprise Edition
Pinpoint: Problem Determination in Large, Dynamic Internet Services Mike Chen, Emre Kıcıman, Eugene Fratkin {emrek,
Glink for Java: applet, application and an API for integrating access to Bull, IBM, UNIX and Minitel systems with your Java based e-business applications.
EJB. Introduction Enterprise Java Beans is a specification for creating server- side scalable, transactional, multi-user secure enterprise-level applications.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Consulting Services JobScheduler Architecture Decision Template
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Azure Cosmos DB with SQL API .Net SDK
Enterprise Java Beans.
Knowledge Byte In this section, you will learn about:
Objectives In this lesson, you will learn about:
Presentation transcript:

Team 2: The House Party Blackjack Mohammad Ahmad Jun Han Joohoon Lee Paul Cheong Suk Chan Kang

Team Members Hwi Cheong (Paul) Mohammad Ahmad Joohoon Lee Jun Han SukChan Kang

Baseline Application Blackjack game application  User can create tables and play Blackjack.  User can create/retrieve profiles. Configuration  Operating System: Linux  Middleware: Enterprise Java Beans (EJB)  Application Development Language: Java  Database: MySQL  Servers: JBOSS  J2EE 1.4

Baseline Architecture Three-tier system Server completely stateless Hard-coded server name into clients Every client talks to HostBean (session)

Fault-Tolerant Design Passive replication  Completely stateless servers No need to transfer states from primary to backup All states stored in database Only one instance of HostBean (session bean) needed to handle multiple client invocations  efficient on server-side  Degree of replication depends on number of available machines Sacred machines  Replication Manager (chess)  mySQL database (mahjongg)  Clients

Replication Manager Responsible for server availability notification and recovery Server availability notification  Server notifies Replication Manager during boot.  Replication Manager pings each available server periodically. Server recovery  Process fault: pinging fails; reboot server by sending script to machine  Machine fault (Crash fault): pinging fails; sending script does nothing; machine has to be booted and server has to be manually launched.

Replication Manager (cont’d) Client-RM communication  Client contacts Replication Manager each time it fails over  Client quits when Replication Manager returns no server or Replication Manager can’t be reached.

Evaluation of Performance (without failover)

Observable Trend

Failover Mechanism Server process is killed. Client receives a RemoteException Client contacts Replication Manager and asks for a new server. Replication Manager gives the client a new server. Client remakes invocation to new server Replication Manager sends script to recover crashed server

Failover Experiment Setup 3 servers initially available Replication Manager on chess 30 fault injections Client keeps making invocations until 30 failovers are complete. 4 probes on server, 3 probes on client to calculate latency

Failover Experiment Result Invocation # Latency (ms)

Failover Experiment Results Maximum jitter: ~700ms Minimum jitter: ~300ms Average failover time: ~ 404ms

Failover Pie-chart Most of latency comes from getting an exception from server and connecting to the new server

Real-time Fault-Tolerant Baseline Architecture Improvements Fail-over time Improvements  Saving list of servers in client Reduces time communicating with replication manager  Pre-creating host beans Client will create host beans on all servers as soon as it receives list from replication manager Runtime Improvements  Caching on the server side

Client-RM and Client-Server Improvements Client-RM and Client-Server communication  Client contacts Replication Manager each time it runs out of servers to receive a list of available servers.  Client connects to all servers in the list and makes a host beans in them, then starts the application with one server  During each failover, client connects to the next server in the list.  No looping inside list  Client quits when Replication Manager returns an empty list of servers or Replication Manager can’t be reached.

Real-time Server Caching in server  Saves commonly accessed database data in server  Use Hashmap to map query to previously retrieved data.  O(1) performance for caching

Real-time Failover Experiment Setup 3 servers initially available Replication Manager on chess 30 fault injections Client keeps making invocations until 30 failovers are complete. 4 probes on server, 5 probes on client to calculate latency and naming service time Client probes  Probes around getPlayerName() and getTableName()  Probes around getHost() – for failover Server probes  Record source of invocation – name of method  Record invocation arrival and result return times

Real-time Failover Experiment Results Latency (ms) Invocation #

Real-time Failover Experiment Results Average failover time: 217 ms  Half the latency without improvements (404 ms) Non-failover RTT is visibly lower (shown on graphs below) Before Real-Time ImplementationAfter Real-Time Implementation

Real-time Failover Experiment Results

Open Issues Blackjack game GUI Load-balancing using Replication Manager Multiple number of clients per table (JMS) Profiling on JBoss to help improve performance Generating a more realistic workload TimeoutException

Conclusions What we have accomplished  Fault-tolerant system with automatic server detection and recovery  Our real-time implementations proved to be successful in improving failover time as well as general performance What we have learned  Merging code can be a pain.  A stateless bean are accessed by multiple clients.  State can exist even in stateless beans and is useful if accessed by all clients  cache! What we would do differently  Start evaluation earlier…  Put more effort and time into implementing timeout’s to enable bounded detection of server failure.