- 데이터 update시, 동시에 다른 트랜잭션에서 데이터를 수정할 수 없도록 잠가놓는 기능
Shared Lock
- 공유 Lock, Read Lock
- 데이터 조회시 사용함
- 다른 트랜잭션에서 조회는 가능하지만, 수정은 불가
Exclusive Lock
- 배타적 Lock, Write Lock
- 데이터 수정시 사용함
- read, write 모두 불가
DeadLock
- 둘 이상의 프로세스가, lock이 걸려있는 자원을 서로 획득하려 할때의 교착 상태
발생하는 경우
- A 트랜잭션이 a 자원을 lock, B 트랜잭션이 b 자원을 lock -> A가 b를 획득하려하고 동시에 B가 a를 획득하려 할때 발생
- A 트랜잭션이 lock을 걸어놓은 상태로 sleep -> B 트랜잭션이 접근하려 할때 교착 상태에 빠짐
해결 방법
- 트랜잭션 진행방향을 같은 방향으로 구현
- 트랜잭션 기간을 최소화