흰 스타렉스에서 내가 내리지

공유락(Shared Lock)과 배타락(Exclusive Lock) 본문

etc

공유락(Shared Lock)과 배타락(Exclusive Lock)

주씨. 2024. 7. 9. 00:47
728x90

공유락(Shared Lock) 과 배타락 (Exclusive Lock) 은 DBMS 에서 동시성 제어를 위해 사용되는 두 가지 주요 잠금 방식이다.

이 Lock 메커니즘은 다중 사용자 환경에서 데이터의 일관성과 무결성을 보장하기 위해 사용된다. 

 

 

# 공유락 (Shared Lock)

여러 트랜잭션이 동시에 동일한 데이터를 읽을 수 있도록 허용하는 잠금이다. 

다른 트랜잭션이 잠긴 객체를 읽고 다른 공유 락을 생성하는 것은 허용하지만, 쓰기나 배타 락을 생성할 수 없다. 

여러 트랜잭션이 동일한 행에 공유락을 생성할 수 있다. 즉, 다른 트랜잭션이 읽고 있는 행을 읽을 수 있다. 

공유 락이 걸려있는 행에 배타 락을 걸 수는 없다. 즉, 해당 공유 락이 해제될 때까지 쓰기는 불가능하다.

 

 

예시)

트랜잭션 A 가 데이터 X 에 공유락을 설정하면, 트랜잭션 B 도 데이터 X 에 공유락을 설정하고 읽을 수 있다. 

그러나 트랜잭션 C 는 데이터 X 에 배타락을 설정할 수 없다.

 

# 배타락 (Exclusive Lock)

동일한 행에 다른 트랜잭션을 생성하는 것을 금지한다. 

다른 트랜잭션에서 배타 락을 생성할 수 없기 때문에 쓰기가 불가능하다. 

다른 트랜잭션에서 공유 락을 생성할 수 없다. 단, 락을 쓰지 않는 읽기는 가능하다. 

 

예시)

트랜잭션 A 가 데이터 Y 에 배타락을 설정하면, 다른 트랜잭션은 데이터 Y 에 접근할 수 없다. 

트랜잭션 A 가 배타락을 해제하기 전까지, 다른 트랜잭션은 데이터 Y 에 대한 접근 차단된다. 

 

 

 

# 사용 예시

공유락은 데이터를 읽기만 하는 상황에서 사용된다. 예를 들어, 보고서 생성, 데이터 분석 등

배타락은 데이터를 수정하거나 삭제하는 상황에서 사용된다. 예를 들어, 트랜잭션 처리, 데이터 업데이트 등

 

 

# 장단점

공유락의 장점 : 다중 트랜잭션이 동시에 데이터를 읽을 수 있기 때문에 동시성 효율성이 높아진다.

공유락의 단점 : 데이터 수정이 제한되어 있어, 특정 트랜잭션이 데이터를 수정해야 할 때 대기 시간이 발생할 수 있다. 

배타락의 장점 : 데이터 무결성과 일관성을 보장하며, 트랜잭션이 데이터를 안전하게 수정할 수 있다. 

배타락의 단점 : 동시성이 제한되어 여러 트랜잭션이 동시에 데이터에 접근하는 경우 성능 저하가 발생할 수 있다. 

'etc' 카테고리의 다른 글

SSH 의 원리와 접속 과정  (0) 2024.07.18
Slack Webhook URL 을 추가하는 방법  (0) 2024.07.17
IOPS  (0) 2024.06.05
컴퓨터 구조와 Swap Memory (스왑 메모리)  (0) 2024.03.24
[네이버 블로그] 카테고리 만들기  (0) 2024.03.14