Concurrency Control Article Index for
Concurrency
Website Links For
Control
 

Information About

Concurrency Control




In Computer Science -- in the field of Concurrent Programming (see also Parallel Programming and Parallel Computing on Multiprocessor machines) -- concurrency control is a method used to ensure that correct results are generated, while getting those results as quickly as possible.

Several algorithms can be used for either type of concurrency control (i.e., with in-RAM data structures on systems that have no database, or with on-disk databases).


Transaction ACID rules



Concurrency control mechanism


The main categories of concurrency control mechanisms are:
  • Optimistic - Delay the synchronization for transactions until the operations are performed. Conflicts are less likely but won't be known until they happen.

  • Pessimistic - The ''potentially'' concurrent executions of transactions are synchronized early in their execution life cycle. Blocking is thus more likely but will be known earlier.


There are many methods for concurrency control, the majority of which uses Strict 2PL locking:


Locks are bookkeeping objects associated with a database object.

There are also Non-lock Concurrency Control methods. All the currently implemented lock-based and almost all the implemented non-lock based concurrency controls will guarantee that the resultant schedule is Conflict Serializable ; however, there are many academic texts encouraging View Serializable schedules for environments where gains due to improvement in concurrency outstrip overheads in generating schedule plans.


SEE ALSO



EXTERNAL LINKS