A는 row 2를, B는 row 1을 기다린다. 어느 쪽도 먼저 놓지 않는다 Tx A트랜잭션 itemrow 1 · row 2 Tx B트랜잭션 row 1 잠금 row 2 잠금 row 2 기다림 row 1 기다림 서로를 기다리는 순환 대기, 데드락 Database · 개념 정리낙관적 락 vs 비관적 락, 데드락DB 동시성 제어 정리 (DB 총정리 1/4)DB 총정리 첫 편. 데드락과 라이브락, 비관적 락과 낙관적 락을 고르는 기준, 그리고 WHERE가 빠진 UPDATE 한 줄로 전체 유저가 로그아웃된 사고.2026.07.22
WHERE에 기대 상태를 걸면 먼저 도착한 쪽만 1행을 바꾼다 Pod ACancel jobid=3 Pod Bexecutor 조건부 UPDATE 1행 → 완료 조건부 UPDATE 0행 → skip A만 반영되고 B는 건너뛴다 Database · 실전 · 트러블슈팅여러 Pod(replica) 환경 동시성 제어: 단일 SQL CAS 패턴pod를 여러 개 띄우자 같은 job을 두 pod가 동시에 완료 처리하는 경합이 생겼다. 분산락 없이 조건부 UPDATE 한 문장, CAS 패턴으로 막은 과정.2026.07.18