Long-lived transactions hold database resources for relatively long periods of time, significantly delaying the completion of shorter and more usual transactions. To alleviate these problems, we propose a new concurrency control scheme called extented serialization graph test (ESGT) scheme. This scheme is based on cycle detection algorithm which determines whether a transaction violates serializability or not.
In this scheme, in order to improve the degree of concurrency, transactions are allowed to read and write objects that have been written by uncommitted transactions if they satisfy serializability. This may result in cascading aborts, and thus degrade the performance of database system. To overcome this problem we propose the dependency depth-k algorithm. In this algorithm, to reduce the probability of cascading aborts, a transaction never executes its operation if its dependency depth is greater than k, although it does not violate serializability. To control the dependency depth properly, it is possible to establish a balance between resource contention and data contention.
Using a simulation model, we demonstrate that ESGT scheme outperforms the traditional two-phase locking protocol under a wide variety of workloads.