A pragmatic implementation of e-transactions

Three-tier applications have nice properties, which make them scalable and manageable: clients are thin and servers are stateless. However, it is challenging to implement or even define end-to-end reliability for such applications. Furthermore, it is especially hard to make these applications reliable without violating their nice properties. In previous work, we identified e-transactions as a desirable and practical end-to-end reliability guarantee for three-tier applications (S. Frolund and R. Guerraoui, 1999). Essentially, an e-transaction guarantees that the server-side transactional side-effect happens exactly once, and that the client receives the result of the server-side computation. Thus, e-transactions mask server and database failures relative to the client. We present a pragmatic implementation of e-transactions that maintains the nice properties of three-tier applications in the special, but very common case of a single back-end database.

[1]  Philip A. Bernstein,et al.  Implementing recoverable requests using queues , 1990, SIGMOD '90.

[2]  Rachid Guerraoui,et al.  Implementing e-Transactions with asynchronous replication , 2000, Proceeding International Conference on Dependable Systems and Networks. DSN 2000.

[3]  Santosh K. Shrivastava,et al.  Integrating the Object Transaction Service with the Web , 1998, Proceedings Second International Enterprise Distributed Object Computing (Cat. No.98EX244).

[4]  Sam Toueg,et al.  Unreliable failure detectors for reliable distributed systems , 1996, JACM.

[5]  Rachid Guerraoui A Pragmatic Implementation of E-transactions * Internal Accession Date Only a Pragmatic Implementation of E-transactions , 2000 .

[6]  Peter S. Weygant,et al.  Clusters for High Availability: A Primer of HP Solutions , 1996 .

[7]  Paulo Veríssimo,et al.  A replication-transparent remote invocation protocol , 1994, Proceedings of IEEE 13th Symposium on Reliable Distributed Systems.

[8]  Robbert van Renesse,et al.  Reliable Distributed Computing with the Isis Toolkit , 1994 .

[9]  Philip A. Bernstein,et al.  Principles of Transaction Processing , 1996 .

[10]  Jeff Magee,et al.  Client Access Protocols for Replicated Services , 1999, IEEE Trans. Software Eng..