Lock의 종류와 범위

아투·2026년 5월 28일

Operation System

목록 보기
17/22
post-thumbnail

Lock의 범위

Record Lock

로우가 아닌 DB의 index record에 걸리는 Lock.

Gap Lock

레코드들 사이의 갭(Gap)을 락하는 것을 의미합니다. 다른 트랜잭션이 해당 범위에 속하는 레코드를 추가하거나 삭제할 수 없도록 막아줍니다.

Lock의 종류

S락과 X락은 데이터베이스에서 동시성 제어를 위해 사용되는 락의 종류이다. 각각 공유 락(Shared Lock, S락)과 배타적 락(Exclusive Lock, X락)으로도 불리며 여러 트랜잭션 간의 데이터 접근 충돌을 방지하고 데이터 일관성을 유지하기 위해 사용된다.

S Lock (Shared Lock)

공유 락이라고도 불리며, 여러 트랜잭션이 동시에 해당 자원을 읽을 수 있게 한다. 여러 트랜잭션 간에 S락을 동시에 획득할 수 있으며, 읽기 작업에 사용된다. S락을 획득한 트랜잭션은 다른 트랜잭션에서 해당 자원을 읽을 수 있지만, 변경 작업은 수행할 수 없다.

X Lock (Exclusive Lock)

배타적 락이라고도 불리며, 해당 자원에 대한 배타적인 접근을 제공한다. 트랜잭션이 X락을 획득하면, 다른 트랜잭션은 해당 자원에 대한 읽기 또는 쓰기 작업을 수행할 수 없다. X락은 데이터를 변경하는 작업에 사용된다. 트랜잭션이 X락을 획득하면, 다른 트랜잭션에서는 그 자원에 접근할 수 없게 된다. S락은 여러 트랜잭션이 동시에 읽기 작업을 수행할 수 있고, X락은 배타적인 접근을 요구하여 읽기 및 쓰기 작업을 독점한다. 이러한 락들은 동시성 제어를 통해 데이터베이스의 데이터 무결성과 일관성을 유지하며, 여러 트랜잭션 간의 충돌을 방지한다.

참고

Record Lock, Gap Lock 아래 S Lock, X lock이 존재한다고 이해하면 좋다.

0개의 댓글