Choose a default theme

You can change your theme from the menu

데이터베이스 교착 상태

데이터베이스 교착 상태는 여러 트랜잭션이 서로가 가진 잠금의 해제를 기다려 어느 쪽도 진행하지 못하는 상태이다.

원리

순환 대기가 원인이다. 데이터베이스는 교착 상태를 탐지해 관련 트랜잭션 중 하나를 중단시키는 방식으로 진행을 회복할 수 있다.

예시

T1이 행 A를 잠그고 B를 기다리며, T2가 B를 잠그고 A를 기다리면 순환이 생긴다.

데이터베이스

관계형

MySQL · PostgreSQL · MariaDB · SQLite

NoSQL

Redis · MongoDB · Apache Cassandra

스토리지 엔진

InnoDB · RocksDB · MyRocks

주의할 점

여러 객체의 잠금을 일정한 순서로 획득하면 위험을 줄일 수 있다. 중단된 트랜잭션은 전체 업무 단위로 안전하게 재시도하며 중복 외부 효과를 주의한다.

참고 자료