Database

2PL (Two-Phase Locking) vs 2PC (Two-Phase Commit)

bambee83 2025. 2. 5. 23:28

1. 2PL (Two-Phase Locking) - 2단계 잠금

목적 : 트랜잭션의 일관성직렬 가능성(Serializability) 보장

동작방식 : 트랜젝션이 자원(데이터)에 접근할때 락을 걸고 트랜젝션이 완료될 때까지 락을 유지 

단계 락 획득(확장) → 락 해제(축소)

장점:

직렬 가능성 보장: 트랜잭션 간의 충돌을 방지하여 데이터 일관성 유지

단점:

교착 상태(Deadlock) 발생 가능성: 트랜잭션이 서로의 락을 기다리며 멈추는 상황 발생

성능 저하: 락으로 인한 병목 현상

 

2. 2PC (Two-Phase Commit) - 2단계 커밋

목적 : 분산 트랜잭션 환경에서 원자성(Atomicity) 보장

여러 노드(데이터베이스) 간의 트랜잭션이 모두 성공하거나 모두 실패하도록 하는 프로토콜

동작방식 : Coordinator(조정자)와 여러 Participant(참여자) 간의 두 단계 절차로 진행

단계 준비(Prepare) → 커밋/롤백(Commit/Rollback)

장점:

원자성 보장: 모든 노드가 동일한 상태로 유지됨

데이터 일관성 유지: 분산 환경에서도 데이터 불일치 방지

 

단점:

Coordinator 장애 시 문제 발생: 장애 복구가 복잡

성능 저하: 네트워크 지연, 트랜잭션 대기 시간 증가

더보기

2PL은 데이터베이스 트랜잭션의 동시성 제어에 초점을 맞춘 기술

주로 단일 데이터베이스 환경에서 사용

2PC분산 환경에서 트랜잭션의 원자성을 보장하는 프로토콜

여러 데이터베이스 간의 트랜잭션 일관성을 유지할 때 사용

 

둘 다 데이터 일관성을 유지하기 위한 방법이지만, 적용되는 환경과 중점이 다름