このプロジェクトについて

Kahunaは、分散システムでよくある問題を解決するために設計されたサーバークラスタです。具体的には、分散ロック、一貫性のあるキー/バリューストレージ、冪等な順序付きIDシーケンスを扱います。開発者に、信頼性が高くスケーラブルな分散アプリケーションを構築するための既製のプリミティブを提供します。 主な機能: - 分散ロック: ノード間で共有リソースへのアクセスを同期し、競合状態を防ぎ、データの一貫性を維持します。 - キー/バリューストア: クラスタ全体で構造化データを保存および取得します。耐障害性と高いスループットを備え、メタデータ、キャッシュ、アプリケーション状態に適しています。 - 分散シーケンサ: グローバルに順序付けられた識別子を生成します。データベース、メッセージキュー、イベント駆動型システムに役立ちます。 アーキテクチャ: Kahunaは、スケーラブルなストレージエンジンとRaftベースのコンセンサスを組み合わせています。データは独立して管理されるパーィションに編成されます。スナップショット分離のために多版型同時実行制御(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。 - 証明書によるHTTPSと、ノード認証のための相互TLSをサポートします。 - 自動化されたクラスタ管理のためのKubernetes Operator(アルファ)が利用可能です。 - ネットワーク分断、クラッシュ、クロックスキュー下での正確性についてJepsenでテストされています。 - Webダッシュボードが含まれています。 ライセンス: MIT。