“2024 Data Replication Design Spectrum” 요약
“2024 Data Replication Design Spectrum” 요약
이 글에서는 데이터 복제(Data Replication) 알고리즘의 다양한 설계 방식을 소개하며, 특히 레플리카(replica) 장애를 처리하는 방식에 초점을 맞추고 있음. 복제 알고리즘들은 장애 관리 방식에 따라 분류되며, 리소스 효율성, 가용성, 지연시간(레이턴시) 등의 측면에서 서로 다른 트레이드오프를 가지게 됨.
🔹 1. 장애 처리 방식: Failure Masking vs. Failure Detection
✅ Failure Masking (장애 마스킹)
• 일부 레플리카가 장애가 나더라도 즉각적인 개입 없이 운영 가능한 방식. • 쿼럼 기반(Quorum-based) 리더 없는 복제가 대표적인 예시. • 특징: • 다수결(majority) 기반의 동작 → 과반수 이상이 살아있다면 서비스 지속 가능. • 장애 탐지를 위한 별도 작업 없이 계속 운영 가능하지만, 성능 저하 가능성 존재.
✅ Failure Detection (장애 감지)
• 장애 발생 시, 명시적으로 감지하고 재구성(reconfiguration)이 필요한 방식. • 레플리카의 상태를 추적하고, 장애가 확인되면 새로운 복제 구조를 설정해야 함. • 특징: • 장애 감지를 위한 추가적인 오버헤드 존재. • 장애가 발생하면 즉시 대응이 필요하므로, 복구 과정이 필요함.
🔹 2. 하이브리드 방식: 리더 기반 복제 (Leader-Based Replication)
• 리더(Leader)를 두고, 리더가 모든 복제를 관리하는 방식. • 대표적인 알고리즘: Raft, Paxos • Failure Masking과 Failure Detection의 중간 형태 → 리더가 장애가 나면 새로운 리더를 선출해야 하지만, 운영 중에는 복제를 쉽게 관리할 수 있음.
• 특징: • 장애 시 리더를 선출하는 과정에서 지연이 발생할 수 있음. • 트랜잭션 일관성을 보장하기에 적합.
🔹 3. 복제 알고리즘 비교 (트레이드오프)
| 방식 | 리소스 효율성 | 가용성(Availability) | 지연시간(Latency) |
|---|---|---|---|
| Failure Masking (쿼럼 기반) | 보통 | 높음 | 낮음 |
| Failure Detection (재구성 필요) | 낮음 | 중간 | 높음 |
| 리더 기반 복제 (Raft 등) | 높음 | 중간 | 중간 |
각 방식은 특정한 시스템 요구사항에 따라 적합성이 달라지며, 완벽한 방식은 없음.
🔹 4. 주요 데이터베이스 시스템의 적용 방식
다양한 데이터베이스들이 각각의 목적에 맞는 복제 방식을 선택하고 있어.
• 리더 기반 복제: MongoDB, Redis Cluster 등 • 쿼럼 기반 복제: Cassandra, Riak KV 등 • 재구성 기반 복제: Elasticsearch, InfluxDB 등
🔹 5. 결론: 완벽한 방식은 없음
• 모든 복제 알고리즘은 트레이드오프가 존재하며, 시스템이 요구하는 일관성(Consistency), 가용성(Availability), 성능(Performance) 을 고려해 선택해야 함. • 예를 들어, • 높은 가용성이 필요하면 Failure Masking 방식이 유리. • 리더 기반으로 강한 일관성을 원하면 Raft 같은 리더 기반 복제가 적합. • 재구성이 용이한 시스템이 필요하면 Failure Detection 기반의 접근이 효과적.
🔗 원문: Transactional Blog