Date: Tue, 26 Nov 1996 00:40:57 GMT Server: NCSA/1.5 Content-type: text/html Last-modified: Mon, 29 Apr 1996 23:38:25 GMT Content-length: 2746
Traditional algorithms for controlling concurrent access to shared data, by requiring serializable execution, may unduly restrict concurrency, and hence performance, in situations where data is accessed heavily or distributed, or where transactions run for long periods of time. We are currently investigating the extent to which the semantics of transactions (expressed as proofs in a formal system) can be exploited to improve performance. We use semantics in several ways: to define a new correctness criterion for concurrent (non-serializable) transaction execution, to decompose transactions into smaller units so that locks can be released early, and to design a new concurrency control that guarantees correct execution when these units are interleaved. We are taking two approaches to transaction decomposition. In the first we decompose a transaction into a sequence of steps. Steps are atomic and isolated and release all conventional locks when they complete. A new concurrency control and lock mode is required to implement this approach. The second approach guarantees correctness using only conventional locks, but in a non-two-phase fashion.
The algorithms are being implemented in the context of a commercial database system and a test bed has been constructed so that a benchmark transaction load can be applied in order to evaluate the ideas.
We are also interested in the use of transaction semantics to better understand problems associated with federated databases and compensation.