기술면접
공유 락과 베타 락에 대해서
하루우울루
2024. 12. 21. 18:27
공유 락과 베타 락은 데이터베이스의 락킹 메커니즘이다.
동시성 환경에서 데이터의 일관성을 유지하고 안전하게 데이터를 접근하기 위해서 락킹 메커니즘을 알 필요가 있다.
락킹은 여러 트랜잭션이 동시에 동일한 데이터에 접근할 때 생기는 문제를 방지하기 위해 제어하는 메커니즘이다.
먼저 공유락은 데이터를 읽을 때 사용된다.
트랜잭션이 동시에 동일한 데이터를 읽을 수 있도록 허용한다.
공유락은 트랜잭션이 데이터를 읽으려고 할 때 공유락을 획득한다. 이때 다른 트랜잭션도 동일한 데이터에 대해 공유 락을 획득할 수 있다.
공유락이 설정된 동안에는 데이터의 수정이 불가능하고 읽기만 가능하다. 읽기가 완료되면 락이 해제된다.
공유락은 보통 데이터 조회작업이나, 데이터분석에 사용된다.
베타락은 데이터를 수정할 때 사용되는 락 메커니즘이다.
한 번에 하나의 트랜잭션만이 데이터를 수정할 수 있다.
트랜잭션이 데이터를 수정할 때 베타 락을 획득한다. 베타락이 있는 동안 다른 트랜잭션의 읽기와 쓰기가 모두 차단되고 수정 작업이 완료되면 락이 해제된다.
보통 데이터의 삽입, 수정, 삭제 시에 사용된다.
여기서 주의할 점은 데드락이다.
데드락은 두 개 이상의 트랜잭션이 서로 가진 자원에 대해 무한정 기다리는 상태를 말한다.
이 데드락을 방지하기 위해서는
락 획득 순서를 명확히 유지해야 한고, 타임아웃이나 우선순위를 설정하는 방법이 있다.
이런 락의 특성을 알고 이해하면 좋을 것 같다.