[데이터베이스] 락과 DB 회복
·
Database
개발하며 가장 고민하게 되는 문제중 하나가 바로 동시성 문제라고 생각한다. 예로, 두 트랜잭션이 동일한 데이터를 갱신할 때, 마지막 트랜잭션 내용만 반영되여 다른 트랜잭션 작업이 유실되는 문제이다.이것을 갱신손실문제라고 한다. ex) 게임을 하고있을때 피가 10인데, 치유 50과 공격 30이 동시에 들어왔는데, 가장 마지막에 들어온 공격만 들어와서 내 캐릭은 죽어버림 (치유 작업은 유실!)그럼 이러한 문제를 어떻게 해결하느냐 그 방법 바로 Lock이다. DB 락트랜잭션 간 충돌을 방지하기 위해 데이터 대한 접근을 제한한다.Shared Lock: 읽기 전용 트랜잭션을 위한 락.Exclusive Lock: 쓰기 트랜잭션을 위한 락.DB 데드락두 개 이상의 트랜잭션이 서로의 락을 기다리면서 무한 대기해결 : ..