Об этом проекте

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.