백엔드 개발 · 심화
분산 데이터베이스 환경에서 2단계 커밋(2PC) 프로토콜의 한계점은 무엇이며, 이를 극복하기 위한 대안적인 분산 합의 알고리즘(예: Paxos, Raft)이 어떻게 동작하고 어떤 장단점을 가지는지 설명해 주십시오.
힌트 · 2PC의 동기적 블로킹, 단일 장애점 문제를 지적하고, Paxos/Raft가 리더 기반 합의를 통해 가용성과 일관성을 어떻게 유지하는지 설명합니다.
2PC성능 저하단일 실패점PaxosRaft
모범답안
2단계 커밋(2PC)은 분산 환경에서 트랜잭션의 원자성을 보장하지만, 몇 가지 중요한 한계가 있습니다. 가장 큰 문제는 동기적인 블로킹입니다. 코디네이터가 준비 단계를 진행하는 동안 참여자들은 응답을 기다리며 자원을 점유한 채 블록될 수 있습니다. 또한, 코디네이터에 장애가 발생하면 전체 시스템이 멈추는 단일 실패점 문제가 있습니다.
Paxos나 Raft 같은 분산 합의 알고리즘은 이러한 문제를 완화합니다. 이들은 리더 기반 합의를 통해 동작하며, 리더가 장애가 발생해도 다른 노드가 리더가 되어 시스템 가용성을 유지합니다. Paxos는 복잡하지만 이론적으로 안정성이 높고, Raft는 이해하기 쉽고 구현이 간단하다는 장점이 있습니다. 하지만 Paxos와 Raft 모두 합의를 이루는 과정에서 네트워크 지연이 발생할 수 있고, 리더 선출 과정에서 일시적인 서비스 중단이 발생할 수 있다는 단점이 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.