# Tech Report CS-90-03

## Cooperative Transaction Hierarchies

### Abstract:

In this paper, we examine some of the requirements designers place on databases. On the basis of these requirements, we define a new transaction framework called {\em cooperative transaction hierarchy}. This framework allows us to relax the criterion that transactions be atomic, while restricting the effect that this has on synchronization and recovery. {\em Patterns} specify the constraints imposed on an operation history for it to be correct. We use a type of augmented finite state automaton, called an {\em operation machine}, to enforce user-defined operation patterns. The patterns are also used in computing dependency chains among operations on the objects in the database. When an operation fails, we use these chains to invalidate any operations that are dependent on the failed operations. We define a set of operations that cooperating transactions can use when recovering from these invalidations, and show that the operation history remains correct even after recovery from a failure.

(complete text in pdf)