Eager Replication for Stateful J2EE Servers

Replication has been widely used in J2EE servers for reliability and scalability. There are two properties which are important for a stateful J2EE application server. Firstly, the state of the server and the state of the backend databases should always be consistent. Secondly, each request from a client should be executed exactly once. In this paper, we propose a replication algorithm that provides both properties. We use passive replication where a primary server executes a request, and all state changed within the application server by this request is sent to the backup replicas at the end of the execution. An agreement protocol guarantees the consistency between the state of all replicas and the database. A client side communication stub automatically resubmits requests in case of failures, and unnecessary resubmissions are detected by the server replicas. We have implemented the algorithm and integrated it into the JBoss application server. A performance study using the ECPerf benchmark shows the feasibility of our approach.

[1]  Gustavo Alonso,et al.  A new approach to developing and implementing eager database replication protocols , 2000, TODS.

[2]  Alberto Bartoli,et al.  Adaptive Message Packing for Group Communication Systems , 2003, OTM Workshops.

[3]  Rachid Guerraoui,et al.  X-ability: a theory of replication , 2000, PODC.

[4]  Idit Keidar,et al.  Group communication specifications: a comprehensive study , 2001, CSUR.

[5]  Gerhard Weikum,et al.  Recovery guarantees for general multi-tier applications , 2002, Proceedings 18th International Conference on Data Engineering.

[6]  Rachid Guerraoui,et al.  A pragmatic implementation of e-transactions , 2000, Proceedings 19th IEEE Symposium on Reliable Distributed Systems SRDS-2000.

[7]  Alberto Bartoli,et al.  A replication framework for program‐to‐program interaction across unreliable networks and its implementation in a servlet container , 2006, Concurr. Comput. Pract. Exp..

[8]  Benjamin J. Shannon,et al.  Java 2 platform enterprise edition specification , 2001 .

[9]  Alan L. Cox,et al.  Distributed Versioning: Consistent Replication for Scaling Back-End Databases of Dynamic Content Web Sites , 2003, Middleware.

[10]  Gustavo Alonso,et al.  Improving the scalability of fault-tolerant database clusters , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[11]  Simon Patarin,et al.  A Framework for Prototyping J2EE Replication Algorithms , 2004, CoopIS/DOA/ODBASE.

[12]  Priya Narasimhan,et al.  A fault tolerance framework for CORBA , 1999, Digest of Papers. Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing (Cat. No.99CB36352).

[13]  Rachid Guerraoui,et al.  X-Ability: a theory of replication , 2000, PODC '00.

[14]  Willy Zwaenepoel,et al.  Performance and scalability of EJB applications , 2002, OOPSLA '02.

[15]  Willy Zwaenepoel,et al.  Partial Replication: Achieving Scalability in Redundant Arrays of Inexpensive Databases , 2003, OPODIS.

[16]  AlonsoGustavo,et al.  A new approach to developing and implementing eager database replication protocols , 2000 .

[17]  Priya Narasimhan,et al.  State synchronization and recovery for strongly consistent replicated CORBA objects , 2001, 2001 International Conference on Dependable Systems and Networks.

[18]  Santosh K. Shrivastava,et al.  Component replication in distributed systems: a case study using Enterprise Java Beans , 2003, 22nd International Symposium on Reliable Distributed Systems, 2003. Proceedings..

[19]  D. B. Davis,et al.  Sun Microsystems Inc. , 1993 .

[20]  Priya Narasimhan,et al.  Strongly consistent replication and recovery of fault-tolerant CORBA applications , 2002, Comput. Syst. Sci. Eng..