Open In App

Concurrency Control Techniques

Last Updated : 29 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Concurrency control is a fundamental concept in database systems that ensures correct execution of simultaneous transactions without violating data integrity. Below are some characteristics of concurrency control:

  • It enforces isolation among transactions.
  • It preserve database consistency through consistency preserving execution of transactions.
  • It resolve read-write and write-read conflicts.

Concurrency control techniques in DBMS ensure that multiple transactions can execute simultaneously without conflicting with each other. These techniques maintain data consistency and prevent issues like lost updates, dirty reads, or deadlocks. Various concurrency control techniques are:

  1. Two-phase locking Protocol
  2. Time stamp ordering Protocol
  3. Multi version concurrency control
  4. Validation concurrency control

Concurrency control techniques in DBMS manage simultaneous operations without conflicts. Techniques like lock-based protocols, timestamp ordering, and optimistic concurrency control ensure that database transactions remain consistent, even when multiple transactions access the same data concurrently. These methods prevent problems such as deadlocks, dirty reads, and lost updates.

These are briefly explained below.

1. Two-Phase Locking Protocol

Locking is an operation which secures: permission to read, OR permission to write a data item. Two phase locking is a process used to gain ownership of shared resources without creating the possibility of deadlock. The 3 activities taking place in the two phase update algorithm are:

  1. Lock Acquisition
  2. Modification of Data
  3. Release Lock

Two phase locking prevents deadlock from occurring in distributed systems by releasing all the resources it has acquired, if it is not possible to acquire all the resources required without waiting for another process to finish using a lock. This means that no process is ever in a state where it is holding some shared resources, and waiting for another process to release a shared resource which it requires. This means that deadlock cannot occur due to resource contention

A transaction in the Two Phase Locking Protocol can assume one of the 2 phases:

  • Growing Phase: In this phase a transaction can only acquire locks but cannot release any lock. The point when a transaction acquires all the locks it needs is called the Lock Point.
  • Shrinking Phase: In this phase a transaction can only release locks but cannot acquire any.

2. Time Stamp Ordering Protocol

A timestamp is a tag that can be attached to any transaction or any data item, which denotes a specific time on which the transaction or the data item had been used in any way. A timestamp can be implemented in 2 ways. One is to directly assign the current value of the clock to the transaction or data item. The other is to attach the value of a logical counter that keeps increment as new timestamps are required. The timestamp of a data item can be of 2 types:

  • W-timestamp(X): This means the latest time when the data item X has been written into.
  • R-timestamp(X): This means the latest time when the data item X has been read from. These 2 timestamps are updated each time a successful read/write operation is performed on the data item X.

3. Multi-version Concurrency Control

Multi-version schemes keep old versions of data item to increase concurrency. Multiversion 2 phase locking: Each successful write results in the creation of a new version of the data item written. Timestamps are used to label the versions. When a read(X) operation is issued, select an appropriate version of X based on the timestamp of the transaction.

4. Validation Concurrency Control

The optimistic approach assumes that conflicts between transactions are rare. So, it allows transactions to execute freely without using locks or timestamps. Each transaction goes through three phases:

1. Read Phase: The transaction reads data and performs all operations using a private copy. Any updates are stored in a temporary area, not visible to other transactions.

2. Validation Phase: Before committing, the transaction is checked to ensure that applying its changes won't violate database consistency.

  • If the check passes, it proceeds to the next phase.
  • If the check fails, the transaction is rolled back and restarted.

3. Write Phase: The validated changes are now written permanently to the database.


Similar Reads