Intermediate Topic 27 of 51 Databases
Concurrency Control
Techniques coordinating simultaneous database access.
How it works
Concurrency control lets many transactions use the database simultaneously while preserving correctness, typically equivalent to some serial order. Pessimistic approaches use locks to block conflicting access, with two-phase locking being the classic one. Optimistic approaches let transactions run freely and validate at commit that no conflicts occurred, aborting if so. Multi-version concurrency control keeps several versions of rows so readers do not block writers. Timestamp ordering is another approach.
Step-by-step walkthrough
- Both transactions want to update the same row.
- Pessimistic control locks the row for the first.
- The second waits.
- Optimistic control lets both proceed and validates at commit.
- A conflict makes one retry, keeping results serializable.
Where it is used
Every multi-user database, from banking systems to web application back ends, relies on concurrency control to avoid lost updates, dirty reads and inconsistent results.
Common pitfall
Locking causes waiting and deadlocks, while optimistic methods waste work when conflicts are frequent. Hot rows such as counters become bottlenecks. Applications should retry aborted transactions, keep them short and access rows in a consistent order. Choose the strategy that matches the workload's conflict rate.
Where it fits in the course
Concurrency Control is topic 27 of 51 in Databases, rated Intermediate. It follows Isolation Levels. The next topic is Locking and Two-Phase Locking.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Databases quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Databases quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Concurrency Control?
Where do people use Concurrency Control?
What is the most common mistake with Concurrency Control?
What should I learn before this topic?
How can I practice it?
Is Concurrency Control hard to learn?
How long does it take to learn Concurrency Control?
Which topics are related to Concurrency Control?
What should I study after Concurrency Control?
Related topics
- Isolation Levels (Databases)
- Locking and Two-Phase Locking (Databases)
- ACID Properties (Databases)
- MVCC (Databases)
- Concurrency vs Parallelism (Concurrency & Parallelism)
- Process Control Block (Operating Systems)
- Version Control Concepts (Software Engineering)