Databases & Data Storage

Database Deadlock

Definition

A deadlock is a situation in which two or more transactions in a database are waiting for each other to release locks, preventing any of them from proceeding. Each transaction is waiting for a resource that the other transaction holds.

Why It Matters

Deadlocks can bring a part of an application to a complete halt. Understanding how they happen and how to avoid them is crucial for writing robust concurrent applications.

Contextual Example

Transaction A locks the `Users` table and tries to lock the `Products` table. At the same time, Transaction B locks the `Products` table and tries to lock the `Users` table. A and B are now in a deadlock, each waiting for the other.

Common Misunderstandings

  • Most database systems have automatic deadlock detection. When a deadlock is detected, the DBMS will typically choose one transaction as a "victim" and roll it back, allowing the other to proceed.
  • A common way to avoid deadlocks is to ensure that all transactions acquire locks on resources in the same consistent order.

Related Terms

Last Updated: December 17, 2025