PHILIP A. BERNSTEIN AND NATHAN GOODMAN Computer Corporation of America, Cambridge, Massachusetts 02139
In this paper we survey, consolidate, and present the state of the art in distributed database concurrency control. The heart of our analysts is a decomposition of the concurrency control problem into two major subproblems: read-write and write-write synchronization. We describe a series of synchromzation techniques for solving each subproblem and show how to combine these techniques into algorithms for solving the entire concurrency control problem. Such algorithms are called "concurrency control methods." We describe 48 principal methods, including all practical algorithms that have appeared m the literature plus several new ones. We concentrate on the structure and correctness of concurrency control algorithms. Issues of performance are given only secondary treatment. Keywords and Phrases: concurrency control, deadlock, dtstnbuted database management systems, locking, senahzability, synchromzation, tunestamp ordering, timestamps, twophase commit, two-phase locking CR Categories: 4.33, 4.35 INTRODUCTION The Concurrency Control Problem C o n c u r r e n c y control is the activity of coordinating concurrent accesses to a database in a multiuser d a t a b a s e m a n a g e m e n t s y s t e m (DBMS). C o n c u r r e n c y control permits users to access a d a t a b a s e in a multip r o g r a m m e d fashion while preserving the illusion t h a t each user is executing alone on a dedicated system. T h e m a i n technical difficulty in attaining this goal is to p r e v e n t d a t a b a s e u p d a t e s p e r f o r m e d b y one user f r o m interfering with d a t a b a s e retrievals and u p d a t e s p e r f o r m e d b y another. T h e concurrency control p r o b l e m is e x a c e r b a t e d in a distributed D B M S ( D D B M S ) because (1) users m a y access d a t a stored in m a n y different c o m p u t
References: 1. Cert~fwrs: BADA79,BAYE80, CASA79,KUNG81, PAPA79, THOM79 2. Concurrency control theory: BERN79b, BERN80C, CASA79, ESWA76, KUNG79, MXNO78, PAPA77, PAPA79, SCHL78, SILB80, STEA76 3. Performance: BADA80,GARC78,GARC79a, GARC79b, GELE78, REIS79a, RExs79b, ROTH77 4. Reliabihty General: ALSB76a,ALSB76b, BELF76, BERN79a, HAMMS0,LAMP76 Two-phase commzt: HAMM80,LAMP76 5. Timestamp-ordered scheduling (T/O) General: BADA78,BERN78a, BERN80a, BERN80b, BERN80d, LELA78, LIN79, RAMI79 Thomas ' Wrtte Rule: THOM79 Multivers~on t~mestamp ordering: MONT78, REED78 T~mestamp and clock management: LAMP78, THOM79 6. Two-phase locking (2PL) General. BERN79b, BREI79, ESWA76,GARD77, GRAY75, GRAY78,PAPA79, SCHL78, SILB80, STEA81 D~str~buted 2PL: MENA80, MINO79, ROSE78, STON79 Primary copy 2PL: STOle77, STON79 Centralized 2PL: ALSB76a,ALSB76b, GARc79b, GARC79C Voting 2PL: GIFF79, SEQU79, THOM79 Deadlock detection/prevention: GRAY78,KXNG74, KAWA79,ROSE78, STON79 Received April 1980; final revision accepted February 1981 Computing Surveys, Vol. 13, No 2, June 1981