The VLDB Journal

, Volume 20, Issue 3, pp 347–370 | Cite as

Log-based middleware server recovery with transaction support

Regular Paper

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.

Keywords

Application fault tolerance Exactly once execution Transaction processing Recovery Optimistic logging Distributed systems 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Barga, R., Chen, S., David, L.: Improving logging and recovery performance in Phoenix/App. In: Proceedings of IEEE ICDE, pp. 486–497 (2004)Google Scholar
  2. 2.
    Barga R., Lomet D., Shegalov G., Weikum G.: Recovery guarantees for internet applications. ACM Trans. Interet Technol. 4(3), 289–328 (2004)CrossRefGoogle Scholar
  3. 3.
    Barga, R., Lomet, D., Weikum, G.: Recovery guarantees for general multi-tier applications. In: Proceedings of IEEE ICDE, pp. 543–554 (2002)Google Scholar
  4. 4.
    Barga, R.S., Lomet, D., Baby, T., Agrawal, S.: Persistent client-server database sessions. In Proc EDBT, pp. 462–477 (2000)Google Scholar
  5. 5.
    Barga, R.S., Lomet, D.B., Paparizos, S., Yu, H., Chandrasekaran, S.: Persistent applications via automatic recovery. In IDEAS pp. 258–267 (2003)Google Scholar
  6. 6.
    BEA Corp.: Deploying and configuring web applications. http://edocs.bea.com/wls/docs60/ (2000)
  7. 7.
    Bernstein P.A.: Vassos Hadzilacos, and Nathan Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley, Reading (1987)Google Scholar
  8. 8.
    Bernstein, P.A., Hsu, M., Mann, B.: Implementing recoverable requests using queues. In: Proceedings of ACM SIGMOD, pp. 112–122 (1990)Google Scholar
  9. 9.
    Damani, O.P., Garg, V.K.: How to recover efficiently and asynchronously when optimism fail. In: Proceedings of IEEE ICDCS, pp. 108–115 (1996)Google Scholar
  10. 10.
    Damani, O.P., Tarafdar, A., Garg, V.K.: Optimistic recovery in multi-threaded distributed systems. In: Proceedings of IEEE SRDS, pp. 234–243 (1999)Google Scholar
  11. 11.
    Daynes, L., Czajkowski, G.: High-performance, Space-efficient, automated object locking. In: Proceedings of IEEE ICDE, pp. 163–172 (2001)Google Scholar
  12. 12.
    Daynes, L., Czajkowski, G.: Lightweight flexible isolation for language-based extensible systems. In: Proceedings of VLDB, pp. 718–729 (2002)Google Scholar
  13. 13.
    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)CrossRefGoogle Scholar
  14. 14.
    Freeman A.: Microsoft. NET XML Web Services Step by Step. Microsoft Press, Redmond (2003)Google Scholar
  15. 15.
    Freytag, J.C., Cristian, F., Kaehler, B.: Masking system crashes in database application programs. In: Proceedings of VLDB, pp. 407–416 (1987)Google Scholar
  16. 16.
    Frølund, S., Guerraoui, R.: A pragmatic implementation of e-Transactions. In: Proceedings of IEEE SRDS, pp. 186 (2000)Google Scholar
  17. 17.
    Frølund S., Guerraoui R.: e-Transactions: end-to-end reliability for three-tier architectures. IEEE Trans. Softw. Eng. 28(4), 378–395 (2002)CrossRefGoogle Scholar
  18. 18.
    Gray J., Reuter A.: Transaction Processing: Techniques and Concepts. Morgan Kaufmann, San Fransisco (1993)MATHGoogle Scholar
  19. 19.
    Hines, B., Alcott, T., Barcia, R., Botzum, K.: IBM WebSphere Session Management. http://www.informit.com/articles/article.asp?p=332851 (2004)
  20. 20.
    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)
  21. 21.
    IBM, BEA Systems, Microsoft, Arjuna, Hitachi, and IONA: Web Services Transactions Specifications. http://www-128.ibm.com/developerworks/library/specification/ws-tx/ (2005)
  22. 22.
    Jeong, K., Shasha, D.: PLinda 2.0: A transactional/checkpointing approach to fault tolerant linda. In: Proceedings of IEEE SRDS, pp. 96–105 (1994)Google Scholar
  23. 23.
    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)CrossRefGoogle Scholar
  24. 24.
    Lomet, D.: Robust Web Services via Interaction Contracts. In: VLDB Workshop on Technologies for E-Services (2004)Google Scholar
  25. 25.
    Lomet, D., Weikum, G.: Efficient transparent application recovery in client-server information system. In: Proceedings of ACM SIGMOD, pp. 460–471 (1998)Google Scholar
  26. 26.
    Lomet, D.B.: Persistent middle tier components without logging. In: IDEAS, pp. 37–46 (2005)Google Scholar
  27. 27.
    Microsoft: Web Devlopement ASP.NET. http://msdn.microsoft.com/en-us/default.aspx (2009)
  28. 28.
    Microsoft Corp.: ASP.NET. http://msdn.microsoft.com/ library (2000)
  29. 29.
    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)CrossRefGoogle Scholar
  30. 30.
    Napper, J., Alvisi, L., Vin, H.: A fault-tolerant Java virtual machine. In: Proceedings of IEEE DSN, pp. 425–434 (2003)Google Scholar
  31. 31.
    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)Google Scholar
  32. 32.
    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)Google Scholar
  33. 33.
    Oracle.: Enterprise JavaBeans Technology. http://java.sun.com/products/ejb/ (2009)
  34. 34.
  35. 35.
    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)Google Scholar
  36. 36.
    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)Google Scholar
  37. 37.
    Ronsse M., Bosschere K., Mark C., Jacques C.K., Dieter K.: Record/replay for nondeterministic program executions. Commun. ACM 46(9), 62–67 (2003)CrossRefGoogle Scholar
  38. 38.
    Rudys, A., Wallach, D.S.: Transactional rollback for language-based systems. In: Proceedings of IEEE DSN, pp. 439–448 (2002)Google Scholar
  39. 39.
    Salzberg, B., Tombroff, D.: DSDT: Durable scripts containing database transactions. In: Proceedings of IEEE ICDE, pp. 624–633 (1996)Google Scholar
  40. 40.
    Strom R.E., Yemini S.: Optimistic recovery in distributed systems. ACM Trans.Comput. Syst. 3(3), 204–226 (1985)CrossRefGoogle Scholar
  41. 41.
    Wang, R., Salzberg, B., Lomet, D.: Log-based recovery for middleware servers. In: Proceedings of ACM SIGMOD, pp. 425–436 (2007)Google Scholar
  42. 42.
    Wang, R., Salzberg, B., Lomet, D.: Transaction support for log-based middleware server recovery. In: Proceedings of IEEE ICDE, pp. 353–356 (2009)Google Scholar
  43. 43.
    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)Google Scholar
  44. 44.
    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)Google Scholar
  45. 45.
    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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 2010

Authors and Affiliations

  1. 1.Microsoft, One Microsoft WayRedmondUSA
  2. 2.College of Computer and Information Science, Northeastern UniversityBostonUSA
  3. 3.Microsoft Research, One Microsoft WayRedmondUSA

Personalised recommendations