SuDuelKu Fault Tolerant Distributed Systems 6 8 1 4 3 5 5 6 2 1 8 4 7 6 7 6 3 9 1 4 5 2 7 4 3/22/2006 2 6 5 8 9 7 SuDuelKu - Team1 Team 1 Saul Jaspan Yudi Nagata Lucia de Lascurain Chris Nelson Luis Rios 1 Agenda Application Configuration Fault Tolerant Architecture Questions and Assumptions Lessons learned What’s next 3/22/2006 SuDuelKu - Team1 2 Application Configuration EJB Linux Java Using: – JBoss – MySQL – Lomboz – Eclipse 3/22/2006 SuDuelKu - Team1 3 Fault Tolerant Architecture - 1 Fault Injector Name Server Client 1 Server 1 … Database Client N Server 2 (backup) 3/22/2006 SuDuelKu - Team1 Recovery Manager 4 Fault Tolerant Architecture - 2 Name Server SuDuelKuClient primary Recovery Manager SuDuelKu Server backup void startNewServer(…) primary backup EJBClient FaultTolerant SuDuelKu Server FaultInjecting EJBClient void checkPoint(…) bool isAlive(…) void setPacketDropRate(…) void setCheckpointFrequency(…) void setAsPrimary(…) void addBackup(…) void addCommand(…) void setPacketDropRate(…) void setCommandRate(…) primary FaultInjector void void void void startNewClient(…) setPacketDropRate(…) setLoad(…) setErrorTypes(…) 3/22/2006 backup CommandQueue SuDuelKu - Team1 void addCommand(…) void clearQueue(…) void getCommands(…) 5 Questions and Assumptions Questions: – Are we really 100% stateless? – Do we need checkpointing if we are stateless? – Should we have a separate JNDI? Assumptions: – Our naming server will not be killed. – Our message IDs will be committed to the database with the transactions atomically. 3/22/2006 SuDuelKu - Team1 6 Lessons Learned EJB learning curve steep but eases development once summited Calling back from the server to the client is unnatural with middleware Fault Recovery is MUCH easier when the middle tier is stateless 3/22/2006 SuDuelKu - Team1 7 What’s next Develop fault tolerant system. Develop fault injector. Obtain system metrics. 3/22/2006 SuDuelKu - Team1 8 Questions 3/22/2006 SuDuelKu - Team1 9