Cassandra와 유사한 분산 데이터베이스
Source: Dev.to
일관성 해싱 및 분산 파티셔닝
시스템은 키 분배를 위해 일관성 해싱을 사용합니다. 각 노드는 SHA‑1을 통해 링상의 위치에 매핑되어, 각 노드가 Cassandra 인스턴스인 다중 노드 링을 형성합니다. 노드 ID를 SHA‑1으로 해싱함으로써 재균형이 최소화됩니다: 영향을 받는 노드 근처의 키만 이동하면 됩니다.
복제 및 장애 내성
주 노드가 다운되면, 쓰기 작업은 첫 번째 살아있는 복제본으로 전달되며, 해당 복제본이 코디네이터가 됩니다. 복제 과정에서 죽은 복제본은 건너뛰어집니다. 복구 시, 노드는 피어에게 누락된 상태를 요청합니다. CAP 정리의 트레이드오프에서 시스템은 가용성과 파티션 내성을 선택하여 점진적 일관성을 제공합니다.
멤버십 관리를 위한 가십 프로토콜
가십 프로토콜은 중앙 코디네이터를 없앱니다. 노드들은 주기적인 정보 교환(기본 간격: 1000 ms)을 통해 장애를 감지합니다. 각 노드는 무작위 피어를 선택해 멤버십 상태를 교환하고, 업데이트를 받지 못하면 해당 피어를 “다운”으로 표시합니다. 이와 같은 분산형, 확장 가능하고 장애 내성적인 접근 방식은 결국 모든 노드가 동일한 멤버십 뷰를 공유하도록 보장합니다.
Crash Recovery
여기에 충돌 복구 메커니즘에 대한 자세한 내용을 추가할 수 있습니다.
Conflict Resolution
여기에 충돌 해결 전략에 대한 자세한 내용을 추가할 수 있습니다.
테스트 및 시각화
테스트 스위트는 파티션 내성, 복제 및 가십 프로토콜을 다룹니다. 테스트 코드와 시각화 자료는 내 GitHub 저장소에서 확인할 수 있습니다.
References
- Cassandra Documentation 2025
- DataStax Developers 2021