ABSTRACT: Various techniques have been proposed to ensure the safe, concurrent execution of a set of database transactions. Locking protocols are the most prominent and widely used of these techniques, with two-phase locking and tree locking being but two examples of these protocols. A locking protocol defines a general set of restrictions on the placement of lock and unlock steps within transactions. In this paper we show that it is possible to further increase the potential level of concurrency of a set of transactions, within the context of a specific locking protocol, by further restricting the placement of lock and unlock steps within each transaction. We also discuss a variation of the tree locking protocols that allows transactions to be locked with respect to a dynamically changing set of tree structures. In addition, we define and discuss the concept of a concurrency cost function for a locked transaction. This cost function measures the potential for conflict of a transaction with other transactions.
Key words and phrases: concurrency control, two-phase locking protocol, tree locking protocol, database design