Recovery: Bridging the gap between requirements and implementations


Current literature on database transaction recovery reveals a semantic gap between high-level requirements (such as the all-or-nothing property) and the low-level descriptions of how these requirements are implemented (in terms of buffers and their policies, volatile and persistent storage, shadows, etc.).

To bridge this gap, we propose building-blocks that can be composed to satisfy given recovery requirements. We represent the operations on different types of data objects (and storage) by means of a hierarchy of projections of histories. In these histories, events correspond to operations, on data and the different types of storage, and to transaction management events. For example, an operation event appearing in the ``stable database projected history'' means that the effects of this operation are reflected on the stable database. Thus we express the abstract semantics of a recovery property by prescribing which events appear in the various histories. This complements the approach in ACTA, which describes transaction models through the specification of transaction behaviors with respect to their effects on the data objects.

Our framework helps in the methodical crafting of recovery by: (i) exposing the interactions between different recovery techniques within a system, and allowing their specifications to be used in a composable way; and (ii) allowing the methodical synthesis of recovery techniques, including techniques for non-traditional transactional applications.

Using this framework we are specifying recovery properties at various levels of abstraction. We are especially interested in emergent advanced transaction models, that require recovery support in the context of relaxed correctness criteria and non-traditional data types, requiring a re-evaluation of the usual database system tradeoffs.

Our previous research on linguistic support for advanced transaction models led us to this work by showing the importance of recovery and its relative underdevelopment compared to other aspects of transaction support, especially concurrency. To undertake this work, we apply the methodology pioneered in ACTA to formalize (advanced) transactions models.


Back to the Database Systems Home Page

If you have any comments on this page or need further information, please email cris @ cs · umass · edu
Last Update: 10 September 1997