Topic

2PL (Two-Phase Locking, 2단계 로킹)

JackerLab 2026. 4. 18. 18:56
728x90
반응형

개요

2PL(Two-Phase Locking)은 데이터베이스에서 여러 트랜잭션이 동시에 실행될 때 데이터의 일관성과 직렬 가능성(Serializability)을 보장하기 위한 대표적인 동시성 제어 기법이다. 트랜잭션이 데이터를 읽거나 수정할 때 Lock을 획득하고 해제하는 과정을 두 단계로 나누어 관리하며, DBMS의 핵심 트랜잭션 처리 방식으로 널리 사용된다.


1. 개념 및 정의

2PL은 트랜잭션 수행 중 Lock을 획득하는 단계(Growing Phase)와 Lock을 해제하는 단계(Shrinking Phase)를 명확히 구분하는 동시성 제어 기법이다.

트랜잭션은 Lock을 획득하는 동안에는 해제할 수 없고, 한 번 Lock을 해제하면 더 이상 새로운 Lock을 획득할 수 없다. 이러한 규칙을 통해 트랜잭션 간 충돌을 방지하고 데이터의 일관성을 유지한다.


2. 특징

구분 설명 비고
2단계 구조 Lock 획득/해제 단계 분리 Growing/Shrinking
직렬 가능성 보장 트랜잭션 순서 유지 데이터 일관성
충돌 제어 동시 접근 제한 Lock 기반
교착 상태 가능 Deadlock 발생 가능 관리 필요
DBMS 핵심 기법 표준 동시성 제어 RDBMS 활용

한줄 요약: 2PL은 Lock의 획득과 해제를 분리하여 데이터 일관성을 보장한다.


3. 구성 요소

구성 요소 설명 기술 요소
Lock 데이터 접근 제어 Shared/Exclusive
Growing Phase Lock 획득 단계 Lock 추가 가능
Shrinking Phase Lock 해제 단계 Lock 추가 불가
Transaction 작업 단위 ACID 보장
Data Item 대상 데이터 테이블/레코드

한줄 요약: 2PL은 Lock과 트랜잭션의 단계적 관리로 구성된다.


4. 기술 요소

기술 설명 활용
Shared Lock 읽기 Lock 동시에 허용
Exclusive Lock 쓰기 Lock 단독 접근
Strict 2PL Commit 후 Lock 해제 회복성 강화
Conservative 2PL 사전 Lock 확보 Deadlock 방지
Deadlock Detection 교착 상태 탐지 시스템 안정성

한줄 요약: 다양한 2PL 변형을 통해 성능과 안정성을 조정할 수 있다.


5. 장점 및 이점

항목 효과 상세 설명
데이터 일관성 충돌 방지 정확성 확보
직렬 가능성 트랜잭션 순서 보장 안정성
표준화 널리 사용되는 기법 적용 용이
유연성 다양한 변형 존재 환경 대응
안정성 오류 최소화 신뢰성 향상

한줄 요약: 2PL은 데이터 정확성과 시스템 안정성을 보장한다.


6. 주요 활용 사례 및 고려사항

활용 사례 설명 고려사항
금융 시스템 계좌 거래 처리 Deadlock 관리
온라인 쇼핑 주문/결제 처리 성능 고려
ERP 시스템 데이터 동시 처리 Lock 경합
데이터베이스 엔진 트랜잭션 관리 최적화 필요
분산 시스템 데이터 일관성 유지 네트워크 지연

한줄 요약: 2PL은 다양한 시스템에서 활용되지만 교착 상태와 성능을 고려해야 한다.


7. 결론

2PL은 데이터베이스 트랜잭션 처리에서 핵심적인 동시성 제어 기법으로, 데이터 일관성과 직렬 가능성을 보장하는 데 중요한 역할을 한다. 특히 금융 및 대규모 시스템에서 필수적으로 사용되며, Strict 2PL과 같은 변형을 통해 안정성을 강화할 수 있다. 다만 Deadlock 문제를 해결하기 위한 추가적인 관리 전략이 필요하며, 현대 시스템에서는 MVCC 등과 함께 사용되어 성능과 안정성을 균형 있게 확보한다.

728x90
반응형

'Topic' 카테고리의 다른 글

Data Independence (데이터 독립성)  (0) 2026.04.18
OLTP (Online Transaction Processing)  (0) 2026.04.17
Data Dictionary (데이터 사전)  (0) 2026.04.17
Cursor (커서)  (0) 2026.04.17
Trigger (트리거)  (0) 2026.04.16