Concurrency control with lock preemption and restoration

Lock preemption is a common problem with two-phase locking. While a transaction is still active, its locks may be preempted to avoid a deadlock or to satisfy the lock request of a higher-priority transaction. In general, the victim of preemption is aborted. This paper suggests that the victim could be continued and its work up to preemption could be saved if the preempted lock is restored on its availability. Object-oriented database management systems based on client-server architecture, multidatabase systems, and relational database management systems using page-locks are a few cases where lock restoration can be beneficial. Lock restoration works well when the granularity of locking is larger than the granularity of database operations, namely, reads and writes.This paper proposes a correctness criteria called value-serializability for isolation in histories generated by a lock restoring concurrency control scheme. A value-serializable history is shown to have the same behavior (in terms of values read and written) as a conflict-serializable history. The paper describes concurrency control scheme based on lock restoration, and proves that the scheme generates value-serializable histories in general and conflict-serializable histories for a certain class of preempted locks. Some important advantages and disadvantages of lock restoration are listed at the end.