このプロジェクトについて
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。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.