The concurrency of transactions executing on atomic data types can be enhanced through the use of semantic information about operations defined on these types. Hitherto, commutativity of operations has been exploited to provide enhanced concurrency while avoiding cascading aborts. We have identified a property known as recoverability which can be used to decrease the delay involved in processing noncommuting operations while still avoiding cascading aborts. When an invoked operation is recoverable with respect to an uncommitted operation, the invoked operation can be executed by forcing a commit dependency between the invoked operation and the uncommitted operation; the transaction invoking the operation will not have to wait for the uncommitted operation to abort or commit. Further, this commit dependency only affects the order in which the operations should commit, if both commit; if either operation aborts, the other can still commit thus avoiding cascading aborts. To ensure the serializability of transactions, we force the recoverability relationship to be acyclic. Simulation studies indicate that using recoverability, the turnaround time of transactions can be reduced. There is also enhancement in concurrency even when resource constraints are taken into consideration. The magnitude of enhancement is dependent on the resource contention; the lower the resource contention, the higher the improvement. In general, the improvement in transaction throughput is dependent on transaction loads as well as the commutativity and recoverability properties of operations on shared objects. As an extension to this work, the notion of recoverability is used in multi-level concurrency control protocols for complex information systems.
Back to the Database Systems Home Page