Abstract: | We propose an algorithm for improving the concurrency of two phase locked transaction systems, which use symbolic-name locking. The algorithm determines by preanalysis which entities can be unlocked before all locks have been obtained, without comprising serializability. This extends the work we published (J. Algorithms 7 (1986) 146–156), in three ways. First, the transactions are not restricted to exclusive locks and may use shared locks as well. Second, a method is proposed to prevent the potential problem of cascading restarts, which results from unlocking of entities before commitment. Third, the transactions may be designed for a distributed database. |