Phoenix: Making Applications Robust

  • Roger S. Barga ,
  • David Lomet

High Performance Transaction Systems (HPTS) |

At Microsoft Research, we have an ongoing project called Phoenix.  The long term goal of the Phoenix project is to develop and apply recovery techniques that will enable application programs to survive system crashes and allow application programmers to deal effectively with application errors.  The effort relies fundamentally on exploiting and extending conventional database recovery techniques.  Our initial systems focus is to provide persistent database sessions to client applications across server failures, without the application itself needing to take measures for its recoverability.  Our approach is based on (i) application message logging, in which the client application’s interactions with the database server are captured and (ii) database session state materialized as database tables and logged on the server.  To demonstrate the viability of our approach, we implemented a prototype system, named Phoenix/ODBC, that provides persistent ODBC database sessions.