Persistent Client-Server Database Sessions
Database systems support recovery, providing high database availability. However, database applications may lose work because of a server failure. In particular, if a database server crashes, volatile server state associated with a client application’s session is lost and applications may require operator-assisted restart. This prevents masking server failures and degrades application availability. In this paper, we show how to provide persistent database sessions to client applications across server failures, without the application itself needing to take measures for its recoverability. This offers improved application availability and reduces the application programming task of coping with system errors. Our approach is based on (i) capturing client application’s interactions with the database server and (ii) materializing database session state as persistent database tables that are logged on the database server. We exploit a virtual database session. Our procedures detect database server failure and re-map the virtual session to a new session into which we install the saved old session state once the server has recovered. This integrates database server recovery and transparent session recovery. The result is persistent client-server database sessions that survive a server crash without the client application being aware of the outage, except for possible timing considerations. We demonstrate the viability of this approach by describing the design and implementation of Phoenix/ODBC, a prototype system that provides persistent ODBC database sessions; and present early results from a performance evaluation on the costs to persist and recover ODBC database sessions.
KeywordsDatabase System Database Server Server Failure Client Application Application Request
Unable to display preview. Download preview PDF.
- Bernstein, P., Goodman, N. and Hadzilacos, V. Recovery Algorithms for Database Systems. IFIP World Computer Congress, (September 1983) pp. 799–807.Google Scholar
- Kumar, V. and Hsu, M. (eds.) Recovery Mechanisms in Database Systems. Prentice Hall, NJ 1998Google Scholar
- Lomet, D.B. and Weikum, G. Efficient Transparent Application Recovery in Client-Server Information Systems. ACM SIGMOD 1998, Seattle, WA (June 1998) pp. 460–471.Google Scholar
- Lomet, D. Application Recovery Using Generalized Redo Recovery. 1998 Int’l. Conference on Data Engineering, 154–163.Google Scholar
- Lomet, D. and Tuttle, M. Redo Recovery From System Crashes. 1995 VLDB Conference, Zurich, Switzerland, 457–468.Google Scholar
- Lomet, D. and Tuttle, M. A Formal Treatment of Redo Recovery with Pragmatic Implications. Available as Digital CRL Lab Technical Report.Google Scholar
- Transaction Processing Council. TPC Benchmark H. http://www.tpc.org, 1999.