skip to main content
article

Recovery guarantees for Internet applications

Authors Info & Claims
Published:01 August 2004Publication History
Skip Abstract Section

Abstract

Internet-based e-services require application developers to deal explicitly with failures of the underlying software components, for example web servers, servlets, browser sessions, and so forth. This complicates application programming, and may expose failures to end users. This paper presents a framework for an application-independent infrastructure that provides recovery guarantees and masks almost all system failures, thus relieving the application programmer from having to deal with these failures---by making applications "stateless." The main concept is an interaction contract between two components regarding message and state preservation. The framework provides comprehensive recovery encompassing data, messages, and the states of application components. We describe techniques to reduce logging cost, allow effective log truncation, and permit independent recovery for critical components. We illustrate the framework's utility via web-based e-services scenarios. Its feasibility is demonstrated by our prototype implementation of interaction contracts based on the Apache web server and the PHP servlet engine. Finally, we discuss industrial relevance for middleware architectures such as. Net or J2EE.

References

  1. Alvisi, L. and Marzullo, K. 1995. Message logging: Pessimistic, optimistic, and causal. In Proceedings of the 15th International Conference on Distributed Computing Systems, Vancouver, Canada, May30--June 2, 1995. IEEE Computer Society, Los Alamitos, CA, 229--236.]] Google ScholarGoogle Scholar
  2. Barga, R., Lomet, D., and Weikum, G. 2002. Recovery guarantees for general multi-tier applications. In Proceedings of the 18th International Conference on Data Engineering, San Jose, CA, February 26--March 1, 2002. IEEE Computer Society, Los Alamitos, CA, 543--554.]] Google ScholarGoogle Scholar
  3. Barga, R., Lomet, D., Agrawal, S. and Baby, T. 2000. Persistent client-server database sessions. In Proceedings (Lecture Notes in Computer Science, 1777) of the 7th International Conference on Extending Database Technology, Constance, Germany, March 2000, C. Zaniolo, P. C. Lockemann, M. H. Scholl and T. Grust, Eds. Springer, Berlin and Heidelberg, Germany, 462--477.]] Google ScholarGoogle Scholar
  4. Barga, R. and Lomet, D. 2001. Measuring and optimizing a system for persistent database sessions. In Proceedings of the 17th International Conference on Data Engineering, Heidelberg, Germany, April 2001. IEEE Computer Society, Los Alamitos, CA, 21--30.]] Google ScholarGoogle Scholar
  5. Barga, R., Lomet, D., Paparizos, S., Yu, H., and Chandrasekaran, S. 2003. Persistent applications via automatic recovery. In Proceedings of the 17th International Database Engineering and Applications Symposium, Hong Kong, China, July 2003. IEEE Computer Society, Los Alamitos, CA, 258--267.]]Google ScholarGoogle Scholar
  6. Bartlett, J. F. 1981. A NonStop kernel. In Proceedings (Operating System Review 15(5)) of the 8th Symposium on Operation Systems Principles, Asilomar, CA, December 1981. ACM, New York, 22--29.]] Google ScholarGoogle Scholar
  7. Bernstein, P. A., Hsu, M., and Mann, B. 1990. Implementing recoverable requests using queues. In Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, June 1990, H. Garcia-Molina and H. V. Jagadish, Eds. ACM, New York, 112--122.]] Google ScholarGoogle Scholar
  8. Bernstein, P. A. and Newcomer, E. 1996. Principles of Transaction Processing, Morgan Kaufmann, 1996.]] Google ScholarGoogle Scholar
  9. Borg, A., Blau, W., Graetsch, W., Herrmann, F., and Oberle, W. 1989. Fault tolerance under UNIX. ACM Transactions on Computer Systems 7, 1, 1--24.]] Google ScholarGoogle Scholar
  10. Cristian, F. 1991. Understanding fault-tolerant distributed systems. Comm. ACM 34, 2, 56--78.]] Google ScholarGoogle Scholar
  11. Debull 2001. IEEE Bulletin of the Technical Committee on Data Engineering 24, 1. Special Issue on Infrastructure for Advanced E-Services.]]Google ScholarGoogle Scholar
  12. Dutta, K., VanderMeer, D., Datta, A., Ramamritham K. 2001. User action recovery in internet SAGAs (iSAGAs). In Proceedings (Lecture Notes in Computer Science 2193) of the 2nd International Workshop on Technologies for E-Services (TES), Rome, Italy, September 2001, F. Casati, D. Georgakopoulos and M.-C. Shan, Eds. Springer, Heidelberg and Berlin, Germany, 132--146.]] Google ScholarGoogle Scholar
  13. Elnozahy, E. N., Alvisi, L., Wang, Y., and Johnson, D. B. 2002. A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv. 34, 3, 375--408.]] Google ScholarGoogle Scholar
  14. Freytag, J. C., Cristian, F., and Kähler, B. 1987. Masking system crashes in database application programs. In Proceedings of 13th International Conference on Very Large Data Bases, Brighton, UK, September 1987, P. M. Stocker, W. Kent, and P. Hammersley, Eds. Morgan Kaufmann, 407--416.]] Google ScholarGoogle Scholar
  15. Frølund, S. and Guerraoui R. 2000. Implementing e-transactions with asynchronous replication. In Proceedings of 2000 International Conference on Dependable Systems and Networks, New York, NY, June 2000. IEEE Computer Society, Los Alamitos, CA, 449--458.]] Google ScholarGoogle Scholar
  16. Fu, X., Bultan, T., Hull, R., Su, J. 2001. Verification of vortex workflows. In Proceedings (Lecture Notes in Computer Science 2031) of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Genoa, Italy, April 2001, Tiziana Margaria and Wang Yi, Eds. Springer, Berlin and Heidelberg, 143--157.]] Google ScholarGoogle Scholar
  17. Gray, J. and Reuter A. 1993. Transaction Processing: Concepts and Techniques. Morgan Kaufmann.]] Google ScholarGoogle Scholar
  18. Harel, D. and Gery, E. 1997. Executable object modeling with statecharts. IEEE Comput. 30, 7, 31--42.]] Google ScholarGoogle Scholar
  19. Huang, Y. and Wang, Y.-M. 1995. Why optimistic message logging has not been used in telecommunications systems. In Proceedings of the 25th International Symposium on Fault-Tolerant Computing Systems, Pasadena, CA, June 1995. IEEE Computer Society, Washington, D.C., 459.]] Google ScholarGoogle Scholar
  20. Johnson, D. B. and Zwaenepoel, W. 1987. Sender-based message logging. In Proceedings of the 7th International Symposium on Fault-Tolerant Computing, Pittsburgh, PA, July 1987. IEEE Computer Society, 14--19.]]Google ScholarGoogle Scholar
  21. Kim, W. 1984. Highly available systems for database applications. ACM Comput. Surv. 16, 1, 71--98.]] Google ScholarGoogle Scholar
  22. Lomet, D. 1998. Persistent applications using generalized redo recovery. In Proceedings of the 14th International Conference on Data Engineering, Sydney, Australia, Orlando, FL, February 1998. IEEE Computer Society, Los Alamitos, CA, 154--163.]] Google ScholarGoogle Scholar
  23. Lomet, D. and Weikum, G. 1998. Efficient transparent application recovery in client-server information systems. In Proceedings of 1998 ACM SIGMOD International Conference on Management of Data, Seattle, WA, June 1998, L. M. Haas and A. Tiwary, Eds. ACM, New York, NY, 460--471.]] Google ScholarGoogle Scholar
  24. Lomet, D. and Tuttle, M. 1999. Logical logging to extend recovery to new domains. In Proceedings of 1999 ACM SIGMOD International Conference on Management of Data, Philadelphia, PA, June 1999, A. Delis, C. Faloutsos, S. Ghandeharizadeh, Eds. ACM, New York, NY, 73--84.]] Google ScholarGoogle Scholar
  25. Luo, M.-Y. and Yang, C.-S. 2001. Constructing zero-loss Web services. In Proceedings IEEE INFOCOM 2001 of the 20th Joint International Conference of the IEEE Computer and Communication Societies on Computer Communications, Anchorage, AK, April 2001. IEEE, Los Alamitos, CA, 1781--1790.]]Google ScholarGoogle Scholar
  26. Mohan, C., et al. 1992. ARIES: A transaction recovery method supporting fine-granularity locking and partial rollback using write-ahead logging. ACM Trans. on Database Syst. 17, 1, 94--162.]] Google ScholarGoogle Scholar
  27. MSDN Library: Persistence. Microsoft Internet Explorer Persistence Overview. http://msdn.microsoft.com/workshop/author/persistence/overview.asp.]]Google ScholarGoogle Scholar
  28. MSDN Library:. Net. NET Remoting Overview. http://msdn.microsoft.com/library/default.asp? url=/library/en-us/cpguide/html/cpconnetremotingoverview.asp.]]Google ScholarGoogle Scholar
  29. MSR Phoenix. Phoenix: Making Applications Robust. http://www.research.microsoft.com/research/db/phoenix/.]]Google ScholarGoogle Scholar
  30. OMG: CORBA 2000. Fault Tolerant CORBA Spec V1.0. http://cgi.omg.org/cgi-bin/doc?ptc/00-04-04.]]Google ScholarGoogle Scholar
  31. OMG: UML 1999. OMG Unified Modeling Language (UML) Version 1.3.http://www.rational.com/uml.]]Google ScholarGoogle Scholar
  32. Pedregal-Martin, C. and Ramamritham, K. 1999. Recovery guarantees in mobile systems. In Proceedings of the ACM International Workshop on Data Engineering for Wireless and Mobile Access, Seattle, WA, August 1999. ACM, New York, NY, 22--29.]] Google ScholarGoogle Scholar
  33. Pedregal-Martin, C., Ramamritham, K. 2001. Guaranteeing recoverability in electronic commerce. In Proceedings of the 3rd International Workshop on Advanced Issues of E-Commerce and Web-based Information Systems, San Juan, CA, June 2001. IEEE Computer Society, Los Alamitos, CA, 144--155.]] Google ScholarGoogle Scholar
  34. PHP. PHP Documentation and Downloads. http://www.php.net.]]Google ScholarGoogle Scholar
  35. Popovici, A., Schuldt, H., and Schek, H.-J. 2000. Generation and verification of heterogeneous purchase processes. In Proceedings of the 1st International Workshop on Technologies for E-Services, Cairo, Egypt, September 2000, 5--22.]]Google ScholarGoogle Scholar
  36. Schuldt, H., Popovici, A., and Schek, H.-J. 2000. Automatic generation of reliable e-commerce payment processes. In Proceedings of the 1st International Conference on Web Information Systems Engineering, Hong Kong, China, June 2000, Q. Li, Z. M. Özsoyoglu, R. Wagner, Y. Kambayashi, and Y. Zhang, Eds. IEEE Computer Society, Los Alamitos, CA, 434--441.]] Google ScholarGoogle Scholar
  37. Shegalov, G., Weikum, G., Barga, R., and Lomet, D. 2002. EOS: Exactly-once E-Service Middleware (Demo Paper). In Proceedings of the 28th International Conference on Very Large Data Bases, Hong Kong, China, August 2002, P. A. Bernstein, Y. E. Ioaninidis, R. Ramakrishnan, D. Papadias, Eds. Morgan Kaufmann, 1043--1046.]] Google ScholarGoogle Scholar
  38. Sun 2001. Enterprise Java Beans Specification, Version 2.0, http://java.sun.com/products/ejb/docs.html.]]Google ScholarGoogle Scholar
  39. Tygar, J. D. 1998. Atomicity versus anonymity---Distributed transactions for electronic commerce. In Proceedings of the 24th International Conference on Very Large Data Bases, New York, NY, August 1998, A. Gupta, O. Shmueli, and J. Widom, Eds. Morgan Kaufmann, 1--12.]] Google ScholarGoogle Scholar
  40. Weikum, G. and Vossen, G. 2001. Transactional Information Systems---Theory, Algorithms, and the Practice of Concurrency Control and Recovery. Morgan Kaufmann, San Francisco, CA, 2001.]] Google ScholarGoogle Scholar
  41. Williams, M. 2002. Microsoft Visual C#.NET. Microsoft Press, Redmond, WA.]] Google ScholarGoogle Scholar
  42. Zend. Zend Engine. http://www.zend.com.]]Google ScholarGoogle Scholar

Index Terms

  1. Recovery guarantees for Internet applications

              Recommendations

              Reviews

              Panamalai R. Parthasarathy

              A general framework for recovery guarantees in multi-tier applications has been developed by the authors. They introduce a new concept of committed interaction contracts, with exactly-once execution and best failure masking, which is particularly useful for e-services. They have designed protocols that will minimize logging overhead, provide fast recovery, and require few changes to the source code of the PHP Zend engine. Their approach can be adapted to other middleware architectures, such as Java 2 Enterprise Edition (J2EE). This novel approach simplifies application development and reduces the cost of application software life cycles, and hence will be very useful to application programmers.

              Access critical reviews of Computing literature here

              Become a reviewer for Computing Reviews.

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader