Topic
Viewstamped Replication (VSR)
JackerLab
2025. 12. 29. 22:50
728x90
반응형

개요
Viewstamped Replication(VSR)은 분산 시스템에서 고가용성과 데이터 일관성을 보장하기 위한 복제 프로토콜로, 장애 허용(fault-tolerant) 환경에서의 리더 기반 합의를 통해 시스템 무결성을 유지합니다. Paxos 및 Raft와 유사한 계열의 프로토콜로, 주로 로그 복제, 상태머신 복제(State Machine Replication)에 사용되며, 복잡한 장애 상황에서도 데이터 정합성을 보장합니다.
1. 개념 및 정의
| 항목 | 내용 | 비고 |
| 정의 | 장애 상황에서도 데이터 일관성을 유지하기 위한 리더 기반 복제 합의 프로토콜 | MIT, 1988년 최초 발표 |
| 목적 | 서버 장애 발생 시에도 일관된 요청 처리 보장 | Primary-backup 모델 기반 |
| 필요성 | 클러스터 환경에서 복제본 간 데이터 동기화 및 장애 대응 | Paxos에 비해 구조가 명확함 |
2. 특징
| 항목 | 설명 | 비고 |
| View 개념 사용 | 리더 선출을 위한 논리적 세션 단위로 View 사용 | Paxos의 ballot 개념과 유사 |
| 리더 기반 구조 | Primary(리더)가 클라이언트 요청을 수신 및 복제 | 리더 장애 시 View Change 발생 |
| 합의 및 커밋 분리 | 로그 복제와 커밋 과정이 명확히 구분됨 | 상태머신 일관성 보장 |
명시적 뷰 변경(View Change) 메커니즘으로 가용성과 일관성 균형을 달성합니다.
3. 구성 요소
| 구성 요소 | 설명 | 비고 |
| Primary | 클라이언트 요청 수신 및 명령 전파 역할 | 리더 역할 수행 |
| Backup | Primary의 명령을 수신하고 저장 | 과반수 이상 응답 시 커밋 가능 |
| View Number | 현재의 리더 세션을 나타내는 식별 번호 | View Change 발생 시 증가 |
| Log Entry | 상태 머신에 적용할 명령어와 인덱스 정보 포함 | 모든 복제본에 동기화됨 |
| Commit Index | 클라이언트에 응답이 보장된 명령의 인덱스 | 상태머신에 적용 가능 시점 |
구성 요소 간의 상호작용으로 시스템의 무결성을 확보합니다.
4. 기술 요소
| 기술 요소 | 설명 | 활용 예 |
| View Change | 리더 장애 시 새로운 Primary 선출 과정 | 과반수 응답 확보 필요 |
| Replication | 명령어 로그를 다른 노드에 전파 및 저장 | 백업 서버 간 동기화 수행 |
| Client Request Handling | Primary가 요청 수신 및 복제 시작 | 이중 응답 방지 구조 포함 |
| Safety & Liveness | 무결성과 진전성 동시 보장 | 비잔틴 장애는 비대상 |
Paxos보다 이해하기 쉬우며, Raft와 개념적으로 유사합니다.
5. 장점 및 이점
| 항목 | 설명 | 기대 효과 |
| 고가용성 보장 | 일부 노드 장애 시에도 시스템 운영 가능 | 서비스 연속성 유지 |
| 데이터 일관성 유지 | 모든 복제본 간 로그 일치 | 정합성 기반 상태머신 작동 |
| 리더 선출 메커니즘 | 장애 발생 시 빠른 리더 교체 가능 | 시스템 복구 시간 단축 |
| 명확한 단계 구분 | View → Prepare → Commit으로 구조화 | 구현 및 디버깅 용이 |
운영 중 발생하는 장애에 유연하게 대응할 수 있도록 설계되어 있습니다.
6. 주요 활용 사례 및 고려사항
| 사례 | 설명 | 고려사항 |
| 데이터베이스 로그 복제 | 분산 데이터베이스에서 변경 사항 동기화 | 로그 순서 보장 필수 |
| 분산 스토리지 시스템 | 장애 발생 시 데이터 무결성 확보 | View Number 관리 주의 |
| 마이크로서비스 상태 유지 | 상태 기반 서비스 간 일관성 확보 | 리더 선출 충돌 방지 필요 |
| 클라우드 기반 복제 시스템 | 고가용 인프라에서 상태머신 복제 | 네트워크 분할 대응 설계 필수 |
복잡한 장애 상황에서도 일관성을 유지하는 설계가 중요합니다.
7. 결론
Viewstamped Replication은 분산 시스템에서 리더 기반으로 일관성과 가용성을 동시에 보장하는 복제 프로토콜입니다. Paxos 대비 구조가 명확하고, Raft와 유사한 설계 덕분에 시스템 설계 및 디버깅이 쉬운 장점을 가집니다. 클러스터 기반의 상태머신 복제, 로그 동기화, 장애 복구 환경 등에서 핵심 역할을 하며, 분산 시스템 구현에 있어 필수적인 개념입니다.
728x90
반응형