Concurrency control using locking with deferred blocking
Abstract
The concurrency control method employed can be critical to the performance of transaction processing systems. The conventional locking scheme tends to suffer from the blocking phenomenon, that is, waiting transactions continue to hold locks and block other transactions from progressing. In a high data contention environment, as an increasing number of transactions wait, a larger number of lock table entries get blocked and fewer lock requests can get through. The proposed scheme reduces the blocking probability by deferring the blocking behavior of transactions to the later stages of their execution. The transaction execution can then be divided into a nonblocking phase, in which transactions wait for locks but do not block other transactions, and a blocking phase, as in conventional locking. Data accessed during the nonblocking phase can lead to transaction abort. By properly balancing the blocking and abort effects, the proposed scheme can lead to better performance at all data and resource contention levels than either conventional locking or the optimistic concurrency control schemes. Both simulation and analytical models are used for estimating the performance of this scheme.