Measuring and Optimizing a System for Persistent Database Sessions

Roger Barga and David Lomet


High availability for both data and applications is rapidly

becoming a business requirement. While database systems

support recovery, providing high database availability,

applications may still lose work because of server outages.

When a server crashes, volatile state associated with the

application's database session is lost and the application may

require operator-assisted restart. This exposes server failures to

end-users and always degrades application availability. Our

Phoenix/ODBC system supports persistent database sessions

that can survive a database crash without the application being

aware of the outage, except for possible timing considerations.

This improves application availability and eliminates

application programming needed to cope with database crashes.

Phoenix/ODBC requires no changes to database system, data

access routines, or applications. Hence, it can be deployed in

any application that uses ODBC to access a database. Further,

our generic approach can be exploited for a variety of data

access protocols. In this paper, we describe the design of

Phoenix/ODBC and introduce an extension to optimize response

time and reduce overhead for OLTP workloads. We present a

performance evaluation using TPC-C and TPC-H benchmarks

that demonstrate Phoenix/ODBC’s extra overhead is modest.


Publication typeInproceedings
Published inICDE Conference
PublisherIEEE Computer Society
> Publications > Measuring and Optimizing a System for Persistent Database Sessions