kronotop/kronotop

Distributed, transactional document database backed by FoundationDB.

Kronotop – FoundationDB 上で構築された分散型トランザクション対応ドキュメントストア

何であるか – Kronotop は Java で作られたデータベースで、JSON に似た(BSON)ドキュメントと順序付きキー値ペアを格納します。Apple の FoundationDB の上に動作し、ACID、厳密な直列化、自動シャーディング、障害耐性を継承します。このサービスは Redis/Valkey の RESP プロトコル(RESP2 および RESP3 の両方)をサポートしており、既存の Redis クライアントはカスタムドライバーなしで接続可能です。

AI にとってなぜ重要か – 複数の分離された論理データベース(ネームスペース と呼ばれる)が必要なワークロードに最適です。これは、マルチテナント AI プラットフォーム、エージェントごとのメモリストア、またはユーザーごとのコンテキストキャッシュで一般的なパターンです。各ネームスペースは FoundationDB のキー接頭辞にすぎないため、数百万個のネームスペースを作成してもコストは低くなります。Kronotop には以下の機能があります:

  • ベクトルインデックス(JVector を通じて):埋め込みフィールドに対する近似最近傍検索を可能にし、トランザクションワークフロー内で高速な類似性照会を実現します。
  • ネームスペース間トランザクション – 1 つのトランザクションで任意数のネームスペースに原子的に読み書きできます。
  • セカンダリインデックス(単一フィールド、複合、ベクトル)と、BQL クエリを最適化するルールベースのクエリプランナー。
  • ZMap – FoundationDB に直接マッピングされる低レベルの順序付きキー値 API。カウンターや分散ロックなどに有用な原子的変更を公開します。

コアコンセプト

  • ネームスペース – キー空間レベルで分離された階層的な論理データベース。
  • Bucket – ドキュメントモデル。CRUD、BQL クエリ、カーソルベースのストリーミング、ベクトル検索をサポートします。
  • ZMap – 原始的な順序付きキー値操作用の RESP 互換プロキシ。
  • トランザクション – FoundationDB トランザクションの薄いラッパー。デフォルトで自動コミットされ、複数コマンドの原子性のために明示的な BEGIN … COMMIT ブロックが利用可能。
  • クラスタリング – データはシャーディングされ、各シャードはプライマリとオプションのスタンバイボリュームレプリカに配置されます。クラスタの調整は FoundationDB がすべて処理します。

一般的な利用事例

  • LLM ベースのアシスタント向けのエージェントごとまたはテナントごとのコンテキストストア。各エージェントに独自のネームスペースが割り当てられ、埋め込みデータとその他のメタデータを同時に格納可能。
  • 強い整合性を必要とするアプリケーション向けの水平スケーラブルなトランザクション対応ドキュメントストレージ。
  • ZMap の衝突フリーな原子的変更を活用した分散同期プリミティブ(ロック、カウンター)。
  • 伝統的なキー値アクセスパターンとベクトル類似性検索を組み合わせたワークロード。

成熟度 – プロジェクトは 開発者プレビュー 階段です。コアアーキテクチャとトランザクションモデルは安定していますが、1.0 リリース前に API、内部フォーマット、運用挙動が変更される可能性があります。ドキュメントは最新を維持していますが、時折の遅延は予想されます。

導入方法

  1. Docker をインストールし、提供されたクイックスタート compose ファイルを実行します:
    curl -O https://kronotop.com/kronotop-quickstart.yaml
    docker compose -f kronotop-quickstart.yaml up
    
  2. バンドルされた kronotop-cli(または任意の Redis クライアント)でクライアントポート(5484)に接続してデータ操作を行い、管理ポート(3320)でクラスタ管理を行います。
  3. README に示された RESP コマンドを使って、バケットを作成し、ドキュメントを挿入・照会します。
  4. 本番環境では、ソースからビルド(Maven)するか、GitHub Container Registry から事前にビルドされた Docker イメージを取得します。

ライセンス – Apache License 2.0(許容性が高く、商用利用に適しています)。


TL;DR – Kronotop は FoundationDB をバックエンドに持ち、RESP 互換のドキュメントデータベースです。安価で分離されたネームスペース、ACID トランザクション、組み込みのベクトル検索を提供し、AI エージェントやその他のマルチテナント・整合性が重要なアプリケーションの構築に便利な基盤となります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト