Recovery guarantees for Internet applications

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.

[1]  Xiang Fu,et al.  Verification of Vortex Workflows , 2001, TACAS.

[2]  Jan Kleindienst,et al.  Persistence Overview , 1995 .

[3]  Joel F. Bartlett,et al.  A NonStop kernel , 1981, SOSP.

[4]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[5]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[6]  Gerhard Weikum,et al.  EOS: Exactly-Once E-Service Middleware , 2002, VLDB.

[7]  David B. Lomet Persistent applications using generalized redo recovery , 1998, Proceedings 14th International Conference on Data Engineering.

[8]  David B. Lomet,et al.  Bulletin of the Technical Committee on Data Engineering Special Issue on Data Reduction Techniques Announcements and Notices Letter from the Editor-in-chief 1 Technical Committee Election Changing Editorial Staa Letter from the Special Issue Editor the New Jersey Data Reduction Report , 2022 .

[9]  Heiko Schuldt,et al.  Automatic generation of reliable e-commerce payment processes , 2000, Proceedings of the First International Conference on Web Information Systems Engineering.

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

[11]  Krithi Ramamritham,et al.  User Action Recovery in Internet SAGAs (iSAGAs) , 2001, TES.

[12]  Marc H. Scholl,et al.  Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery , 2001, SGMD.

[13]  Yi-Min Wang,et al.  Why optimistic message logging has not been used in telecommunications systems , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[14]  David Harel,et al.  Executable object modeling with statecharts , 1997, Computer.

[15]  Heiko Schuldt,et al.  Generation and verification of heterogeneous purchase processes , 2000, TES.

[16]  Mark R. Tuttle,et al.  Logical logging to extend recovery to new domains , 1999, SIGMOD '99.

[17]  Gottfried Vossen,et al.  Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery , 2002 .

[18]  Krithi Ramamritham,et al.  Guaranteeing recoverability in electronic commerce , 2001, Proceedings Third International Workshop on Advanced Issues of E-Commerce and Web-Based Information Systems. WECWIS 2001.

[19]  Mon-Yen Luo,et al.  Constructing zero-loss Web services , 2001, Proceedings IEEE INFOCOM 2001. Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213).

[20]  Roger S. Barga,et al.  Phoenix: making applications robust , 1999, SIGMOD '99.

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

[22]  Roger S. Barga,et al.  Measuring and optimizing a system for persistent database sessions , 2001, Proceedings 17th International Conference on Data Engineering.

[23]  J. Doug Tygar,et al.  Atomicity versus Anonymity: Distributed Transactions for Electronic Commerce , 1998, VLDB.

[24]  David B. Johnson,et al.  Sender-Based Message Logging , 1987 .

[25]  Gerhard Weikum,et al.  Efficient transparent application recovery in client-server information systems , 1998, SIGMOD '98.

[26]  Flaviu Cristian,et al.  Masking System Crashes in Database Application Programs , 1987, VLDB.

[27]  Won Kim Highly available systems for database applications , 1984, CSUR.

[28]  Mickey Williams Microsoft Visual C# (Core Reference) , 2002 .

[29]  Flaviu Cristian,et al.  Understanding fault-tolerant distributed systems , 1991, CACM.

[30]  Lorenzo Alvisi,et al.  Message logging: pessimistic, optimistic, and causal , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

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

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

[33]  Roger S. Barga,et al.  Persistent applications via automatic recovery , 2003, Seventh International Database Engineering and Applications Symposium, 2003. Proceedings..

[34]  Rachid Guerraoui,et al.  Implementing E-Transactions with Asynchronous Replication , 2001, IEEE Trans. Parallel Distributed Syst..

[35]  Krithi Ramamritham,et al.  Recovery guarantees in mobile systems , 1999, MobiDe '99.

[36]  Roger S. Barga,et al.  Persistent Client-Server Database Sessions , 2000, EDBT.

[37]  Wolfgang Graetsch,et al.  Fault tolerance under UNIX , 1989, TOCS.

[38]  Gerhard Weikum,et al.  Special Issue on Infrastructure for Advanced E-Services , 2001 .

[39]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[40]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[41]  Mickey Williams,et al.  Microsoft Visual C# .NET , 2002 .