Abstract
Providing enterprises with reliable and available Web-based application programs is a challenge. Applications are traditionally spread over multiple nodes, from user (client), to middle tier servers, to back end transaction systems, e.g. databases. It has proven very difficult to ensure that these applications persist across system crashes so that “exactly once” execution is produced, always important and sometimes essential, e.g., in the financial area. Our system provides a framework for exactly once execution of multi-tier Web applications, built on a commercially available Web infrastructure. Its capabilities include low logging overhead, recovery isolation (independence), and consistency between mid-tier and transactional back end. Good application performance is enabled via persistent shared state in the middle tier while providing for private session state as well. Our extensive experiments confirm both the desired properties and the good performance.
Similar content being viewed by others
References
Barga, R., Chen, S., David, L.: Improving logging and recovery performance in Phoenix/App. In: Proceedings of IEEE ICDE, pp. 486–497 (2004)
Barga R., Lomet D., Shegalov G., Weikum G.: Recovery guarantees for internet applications. ACM Trans. Interet Technol. 4(3), 289–328 (2004)
Barga, R., Lomet, D., Weikum, G.: Recovery guarantees for general multi-tier applications. In: Proceedings of IEEE ICDE, pp. 543–554 (2002)
Barga, R.S., Lomet, D., Baby, T., Agrawal, S.: Persistent client-server database sessions. In Proc EDBT, pp. 462–477 (2000)
Barga, R.S., Lomet, D.B., Paparizos, S., Yu, H., Chandrasekaran, S.: Persistent applications via automatic recovery. In IDEAS pp. 258–267 (2003)
BEA Corp.: Deploying and configuring web applications. http://edocs.bea.com/wls/docs60/ (2000)
Bernstein P.A.: Vassos Hadzilacos, and Nathan Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley, Reading (1987)
Bernstein, P.A., Hsu, M., Mann, B.: Implementing recoverable requests using queues. In: Proceedings of ACM SIGMOD, pp. 112–122 (1990)
Damani, O.P., Garg, V.K.: How to recover efficiently and asynchronously when optimism fail. In: Proceedings of IEEE ICDCS, pp. 108–115 (1996)
Damani, O.P., Tarafdar, A., Garg, V.K.: Optimistic recovery in multi-threaded distributed systems. In: Proceedings of IEEE SRDS, pp. 234–243 (1999)
Daynes, L., Czajkowski, G.: High-performance, Space-efficient, automated object locking. In: Proceedings of IEEE ICDE, pp. 163–172 (2001)
Daynes, L., Czajkowski, G.: Lightweight flexible isolation for language-based extensible systems. In: Proceedings of VLDB, pp. 718–729 (2002)
Elnozahy E.N. (Mootaz), Alvisi L., Wang Y.-M., Johnson D.B.: A survey of rollback-recovery protocols in message passing systems. ACM Comput. Surv. 34(3), 375–408 (2002)
Freeman A.: Microsoft. NET XML Web Services Step by Step. Microsoft Press, Redmond (2003)
Freytag, J.C., Cristian, F., Kaehler, B.: Masking system crashes in database application programs. In: Proceedings of VLDB, pp. 407–416 (1987)
Frølund, S., Guerraoui, R.: A pragmatic implementation of e-Transactions. In: Proceedings of IEEE SRDS, pp. 186 (2000)
Frølund S., Guerraoui R.: e-Transactions: end-to-end reliability for three-tier architectures. IEEE Trans. Softw. Eng. 28(4), 378–395 (2002)
Gray J., Reuter A.: Transaction Processing: Techniques and Concepts. Morgan Kaufmann, San Fransisco (1993)
Hines, B., Alcott, T., Barcia, R., Botzum, K.: IBM WebSphere Session Management. http://www.informit.com/articles/article.asp?p=332851 (2004)
IBM: WebSphere Application Server (Distributed platforms and Windows), Version 7.0. http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.base.iseries.doc/info/welcome-base.html (2009)
IBM, BEA Systems, Microsoft, Arjuna, Hitachi, and IONA: Web Services Transactions Specifications. http://www-128.ibm.com/developerworks/library/specification/ws-tx/ (2005)
Jeong, K., Shasha, D.: PLinda 2.0: A transactional/checkpointing approach to fault tolerant linda. In: Proceedings of IEEE SRDS, pp. 96–105 (1994)
Kistijantoro A.I., Morgan G., Shrivastava S.K., Little M.C.: Enhancing an application server to support available components. IEEE Trans. Softw. Eng. 34(4), 531–545 (2008)
Lomet, D.: Robust Web Services via Interaction Contracts. In: VLDB Workshop on Technologies for E-Services (2004)
Lomet, D., Weikum, G.: Efficient transparent application recovery in client-server information system. In: Proceedings of ACM SIGMOD, pp. 460–471 (1998)
Lomet, D.B.: Persistent middle tier components without logging. In: IDEAS, pp. 37–46 (2005)
Microsoft: Web Devlopement ASP.NET. http://msdn.microsoft.com/en-us/default.aspx (2009)
Microsoft Corp.: ASP.NET. http://msdn.microsoft.com/ library (2000)
Mohan C., Haderle D.J., Lindsay B.G., Pirahesh H., Schwarz P.M.: ARIES: A transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans. Database Syst. 17(1), 94–162 (1992)
Napper, J., Alvisi, L., Vin, H.: A fault-tolerant Java virtual machine. In: Proceedings of IEEE DSN, pp. 425–434 (2003)
Narasimhan, P., Moser, L.E., Melliar-smith, P.M.: Enforcing determinism for the consistent replication of multithreaded CORBA applications. In: Proceedings of IEEE SRDS, p. 263 (1999)
Narasimhan, P., Moser, L.E., Melliar-Smith, P.M.: State synchronization and recovery for strongly consistent replicated CORBA objects. In: Proceedings of IEEE DSN, pp 261–270 (2001)
Oracle.: Enterprise JavaBeans Technology. http://java.sun.com/products/ejb/ (2009)
Oracle.: Oracle WebLogic Server. http://www.oracle.com/us/products/middleware/application-server/index.htm, (2009)
Perez-Sorrosal, F., Patino-Martinez, M., Jimenez-Peris, R., Kemme, B.: Consistent and scalable cache replication for multi-tier J2EE applications. In: Middleware 2007, pp. 328–347. Springer Berlin, Heidelberg (2007)
Perez-Sorrosal, F., Patino-Martinez, M., Jimenez-Peris, R., Vuckovic, J.: Highly available long running transactions and activities for J2EE applications. In: Proceedings of IEEE ICDCS, p 2, (2006)
Ronsse M., Bosschere K., Mark C., Jacques C.K., Dieter K.: Record/replay for nondeterministic program executions. Commun. ACM 46(9), 62–67 (2003)
Rudys, A., Wallach, D.S.: Transactional rollback for language-based systems. In: Proceedings of IEEE DSN, pp. 439–448 (2002)
Salzberg, B., Tombroff, D.: DSDT: Durable scripts containing database transactions. In: Proceedings of IEEE ICDE, pp. 624–633 (1996)
Strom R.E., Yemini S.: Optimistic recovery in distributed systems. ACM Trans.Comput. Syst. 3(3), 204–226 (1985)
Wang, R., Salzberg, B., Lomet, D.: Log-based recovery for middleware servers. In: Proceedings of ACM SIGMOD, pp. 425–436 (2007)
Wang, R., Salzberg, B., Lomet, D.: Transaction support for log-based middleware server recovery. In: Proceedings of IEEE ICDE, pp. 353–356 (2009)
Wang, Y.-M., Chung, P.Y., Huang, Y., Elnozahy, E.N.: Integrating checkpointing with transaction processing. In: Proceedings of IEEE FTCS, pp. 304–308 (1997)
Wu, H., Kemme, B.: Fault-tolerance for stateful application servers in the presence of advanced transactions patterns. In: Proceedings of IEEE SRDS, pp. 95–108 (2005)
Zhao M.-W., Moser L.E., Melliar-Smith P.M.: Unification of transactions and replication in three-tier architectures based on CORBA. IEEE Trans. Dependable Secur. Comput. 2(1), 20–33 (2005)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Wang, R., Salzberg, B. & Lomet, D. Log-based middleware server recovery with transaction support. The VLDB Journal 20, 347–370 (2011). https://doi.org/10.1007/s00778-010-0199-1
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00778-010-0199-1