Skip to Main Content
A transaction is atomic if it can be considered, as far as other transactions are concerned, to be indivisible and instantaneous even in the case of failure. An almost universally accepted way to ensure atomicity is to use a strict two-phase locking protocol with a roll-back scheme for recovery in case of deadlock or failure. In this note, we argue that this method is not the most economical way to achieve this end. We develop a Dependency Graph model which is used to analyze the two-phase and non-two-phase locking schemes. It is shown that one way of choosing between the two types of schemes is to estimate the number of rollbacks required. If this number is large, a two-phase scheme is preferable; if small, a non-two-phase scheme should be selected. We demonstrate that with reasonable discipline, the number of such rollbacks can be minimized. Thus, contrary to common practice and belief, non-two-phase protocols can be effectively used in guaranteeing atomicity.