프로젝트 소개
Kahuna는 일반적인 분산 시스템 문제를 해결하기 위해 설계된 서버 클러스터입니다: 분산 락, 일관된 키/값 저장, 그리고 순차적ID 생성을 다룹니다. 개발자에게 신뢰할 수 있고 확장 가능한 분산 애플리케이션 구축을 위한 준비된 원시 구성요소를 제공합니다.
주요 기능:
- 분산 락킹: 노드 간 공유 리소스 접근을 동기화하여 레이스 조건을 방지하고 데이터 일관성을 유지합니다.
- 키/값 저장소: 클러스터 전반에 걸쳐 구조화된 데이터를_fault tolerant_하고 높은 처리량으로 저장 및 검색하며, 메타데이터, 캐시, 애플리케이션 상태에 적합합니다.
- 분산 시퀀서: 데이터베이스, 메시지 큐, 이벤트 기반 시스템에 유용한 전역 순서 식별자를 생성합니다.
아키텍처:
Kahuna는 확장 가능한 스토리지 엔진과 Raft 기반 합의를 결합합니다. 데이터는 독립적으로 관리되는 파티션으로 구성됩니다. Multi-Version Concurrency Control(MVCC)을 사용해 스냅샷 고립을 제공하며, 읽기-쓰기 충돌을 제거합니다. 각 파티션은 자체 Raft 그룹을 실행해 복제와 리더 기반 쓰기 조율을 담당합니다.
트랜잭션은 MVCC와 함께 2상 커밋(2PC)을 사용하며, 낙관적 및 비관적 동시성 제어 모드를 모두 지원합니다. 시스템은 동적 파티션 분할과 재분배를 통해 수평 확장을 지원하고, Raft 복제와 자동 복구를 통해 가용성을 유지합니다.
기술적 세부사항:
- .NET으로 구축됨; `Kahuna.Server` 및 `Kahuna.Control` 전역 도구로 제공.
- 포트: 2070(HTTP/gRPC), 2071(HTTPS), 2072(평문 gRPC).
- 저장 경로: Linux/macOS `~/.local/share/kahuna`, Windows `%LOCALAPPDATA%\kahuna`.
- 인증서와 상호 TLS를 통한 HTTPS 지원으로 노드 인증 가능.
- 자동 클러스터 관리를 위한 Kubernetes Operator(alpha).
- 네트워크 분할, 충돌, 시계 편차 하에서의 정확성을 Jepsen으로 검증.
- 웹 대시보드 포함.
라이선스: MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.