datalevin/datalevin

A simple, fast and versatile Datalog database

何を解決するか

Datalevinは、SQL RDBMSやグラフデータベースの代替として使用できる、シンプルで高速かつ耐久性のあるDatalogデータベースを提供します。SQLの複雑さを回避し、より宣言的で組み合わせ可能なクエリ言語を提供する一方で、他のDatalog実装に見られる複雑な時系列的意味論を避けます。また、キーバリューペア、ドキュメント、ベクトル埋め込みを1つのシステム内で扱える汎用的なストレージエンジンの必要性に対応しています。

動作方法

Datalevinは、高読み取り性能とACID準拠を確保するためにLMDB(Lightning Memory-Mapped Database)のフォークを基盤としています。複雑な結合の実行計画を改善するためにコストベースのクエリ最適化を採用しています。AI機能については、llama.cppを統合してデータベース内でのテキスト生成と埋め込みを実現し、SIMD加速ライブラリを用いてベクトルインデックスと検索を実装しています。埋め込みライブラリ(SQLiteと同様)として、またはRaftベースの高可用性を備えたネットワーククライアント/サーバーとしてデプロイ可能です。

対象ユーザー

Datalogの宣言的性質をSQLよりも好む開発者、グラフクエリや帰納的推論を必要とするアプリケーションを開発する人、および組み込みのベクトル検索とLLM統合を備えた「AIネイティブ」データベースを必要とするAI開発者に最適です。

特徴

  • 汎用的なストレージ: Datalogクエリ、EDNデータ用のキーバリューストレージ、および自動パスインデックス付きのドキュメントストレージ(JSON、EDN、Markdown)をサポート。
  • AIネイティブ: 組み込みのローカルMCPサーバーを備え、llama.cppを介してデータベース内での埋め込みとテキスト生成をサポート。
  • 高パフォーマンス: 新しいコストベースのクエリ最適化と非同期トランザクションモードにより、書き込み集約型ワークロードに最適化。
  • 広範な統合: Java、Python、Node.js、Clojure用のライブラリを提供し、Babashkaポッドと互換性があります。
  • 高度な検索: フルテキスト検索エンジンとSIMD加速ベクトルデータベース機能を備えています。

関連

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