Об этом проекте
Kahuna — это серверный кластер, предназначенный для решения распространённых задач распределённых систем: распределённых блокировок, согласованного хранения ключ/значение и идемпотентных упорядоченных последовательностей идентификаторов. Он предоставляет разработчикам готовые примитивы для создания надёжных и масштабируемых распределённых приложений.
Ключевые возможности:
- Распределённые блокировки: синхронизируют доступ к общим ресурсам между узлами, чтобы предотвращать состояния гонки и поддерживать согласованность данных.
- Хранилище ключ/значение: сохраняет и извлекает структурированные данные в кластере с отказоустойчивостью и высокой пропускной способностью; подходит для метаданных, кэшей или состояния приложений.
- Распределённый секвенсор: генерирует глобально упорядоченные идентификаторы, полезные для баз данных, очередей сообщений и систем, управляемых событиями.
Архитектура:
Kahuna сочетает масштабируемый движок хранения с консенсусом на основе Raft. Данные организованы в независимо управляемые разделы. Используется многоверсионный контроль параллелизма (MVCC) для изоляции снимков, что устраняет конфликты чтения-записи. Каждый раздел запускает собственную группу Raft для репликации и координации записи через лидера.
Транзакции используют двухфазную фиксацию (2PC) с MVCC, поддерживая как оптимистичный, так и пессимистичный режимы управления параллелизмом. Система масштабируется горизонтально за счёт динамического разделения и перераспределения разделов, а доступность поддерживается через репликацию Raft и автоматическое восстановление.
Технические подробности:
- Создан на .NET; доступен как глобальный инструмент (Kahuna.Server и Kahuna.Control).
- Порты: 2070 (HTTP/gRPC), 2071 (HTTPS), 2072 (gRPC без шифрования).
- Пути хранения: Linux/macOS ~/.local/share/kahuna, Windows %LOCALAPPDATA%\kahuna.
- Поддерживает HTTPS через сертификат и взаимный TLS для аутентификации узлов.
- Kubernetes Operator (альфа) доступен для автоматизированного управления кластером.
- Протестирован с Jepsen на корректность при сетевых разделах, сбоях и рассинхронизации часов.
- Включена веб-панель.
Лицензия: MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.