Lock이란?
<aside>
💡 Transaction Lock은 동시성을 제어하기 위해 사용되는 기능
</aside>
Lock이란 Transaction 처리의 순차성을 보장하기 위한 방법으로, DBMS마다 Lock을 구현하는 방식과 세부적인 방법이 다르다.
해당하는 데이터를 점유하여 다른 Transaction의 접근을 막아 동시성과 일관성의 균형을 맞추기 위해 사용된다.
Lock의 종류
Shared Lock(공유 락)
- 데이터를 읽을 때 사용되어지는 Lock을 뜻한다.
- 공유 Lock은 공유 Lock끼리는 동시에 접근 가능하다.
- 다른 Transaction이 데이터를 읽는 것을 허용하지만, 수정하는 것을 금지한다.
- Read Lock이라고 불린다.
Exclusive Lock(배타 락)
- 데이터를 변경하고자 할 때 사용되며, Transaction이 완료될 때 까지 유지
- 배타락은 Lock이 해제될 때까지 다른 Transaction(읽기 포함)은 해당 Resource에 접근할 수 없다.
- 베타 Lock은 다른 트랜잭션이 수행되고 있는 데이터에 대해서는 접근하여 함께 Lock을 설정할 수 없음
- Write Lock이라고 불린다.