After a system crash, databases recover to the
last committed transaction, but applications
usually either crash or cannot continue. The
Phoenix purpose is to enable application state to
persist across system crashes, transparent to the
application program. This simplifies application
programming, reduces operational costs, masks
failures from users, and increases application
availability, which is critical in many scenarios,
e.g., e-commerce. Within the Phoenix project,
we have explored how to provide application
recovery efficiently and transparently via redo
logging. This paper describes the conceptual
framework for the Phoenix project, and the
software infrastructure that we are building.