반응형

2026/04/12 2

[데이터베이스 응용] 2PL

지난 포스팅에서는 Lock의 기본 개념과 종류, 그리고 lock을 사용해도 Nonserializable이 될 수 있다는 문제를 살펴봤다. 이번 포스팅에서는 이를 해결하는 2PL 프로토콜과 그 변형들, 그리고 MVCC까지 이어서 정리한다.1. 2PL 프로토콜 (Two-Phase Locking)2PL 프로토콜(Two-Phase Locking Protocol, 2단계 잠금 프로토콜)은 lock을 사용해도 직렬화가 보장되지 않는 문제를 해결하기 위한 규약이다. 핵심 규칙은 다음과 같다.트랜잭션에서 모든 locking operation이 최초의 unlock operation보다 먼저 수행되어야 한다.즉, lock을 취득하는 단계와 반환하는 단계를 엄격히 분리한다.Expanding phase (Growing pha..

[데이터베이스 응용] DB 스냅샷과 Locking 기법

1. Snapshot IsolationSnapshot Isolation이란 트랜잭션이 실행되는 동안 다른 트랜잭션에 의해 수정된 데이터를 볼 수 없게 보장하는 격리 수준이다. 동시성 문제를 해결하면서도 성능을 최적화하는 방식으로, 많은 상업용 DBMS에서 실제로 사용한다.스냅샷(Snapshot)이란?스냅샷은 트랜잭션이 시작된 시점의 데이터 상태를 기준으로 읽도록 하는 논리적인 데이터 시점이다. 즉, 트랜잭션이 시작될 때의 DB 모습이다. 트랜잭션은 자신이 시작된 이후에 다른 트랜잭션이 변경한 데이터를 보지 못하고, 시작 시점의 스냅샷을 기준으로 데이터를 읽는다.2. Snapshot Isolation의 핵심 규칙First-Committer-Wins두 트랜잭션이 같은 데이터를 수정하려고 하면, 먼저 co..

반응형