datalevin/datalevin
A simple, fast and versatile Datalog database
解決する課題
Datalevinは、SQLやグラフデータベースに代わるシンプルで高速、かつ多機能な選択肢として設計された、耐久性の高いDatalogデータベースです。SQLの複雑さを、より宣言的で構成可能なクエリ言語を提供することで解消しつつ、他のDatalog実装に見られる複雑な時間的機能を排除することで、削除されたデータが完全に消去されるという馴染み深いACID準拠の動作を維持しています。
仕組み
Datalevinはコストベースのクエリ最適化エンジンを使用しており、PostgreSQLやSQLiteといったRDBMSに匹敵するパフォーマンスを実現しています。LMDB (Lightning Memory-Mapped Database) のフォークを基盤として構築されており、高い読み取り性能と堅牢なACIDトランザクションを保証します。書き込み負荷の高いワークロード向けに、先行書き込みログ (WAL) と非同期トランザクションの両方をサポートしています。組み込みライブラリ (SQLiteと同様) として動作させることも、Raftベースの高可用性とロールベースアクセス制御 (RBAC) を備えたネットワーククライアント/サーバーモードで動作させることも可能です。
対象ユーザー
SQLよりもDatalogの宣言的な性質や暗黙的な結合 (implicit joins) を好む開発者や、リレーショナル、グラフ、ドキュメント、キーバリューストアのデータモデルを扱う必要のある開発者に最適です。特にClojureプログラムにおいては、ネイティブなEDNデータ処理能力により非常に有用です。
主な特徴
- マルチモデル機能: Datalogクエリ、ドキュメントストレージ (JSON, EDN, Markdown) と自動パスインデックス、SIMD加速によるベクトルデータベース機能、全文検索をサポートしています。
- AIネイティブ機能: ローカルMCPサーバーを内蔵しており、統合されたllama.cppを通じてデータベース内での埋め込み (embedding) とテキスト生成をサポートします。
- 高性能: リレーショナル (JOB)、グラフ (LDBC SNB)、ドキュメント (idoc)、ロジック (OpenRuleBench) の各ワークロードのベンチマークにおいて、多くの代替製品を上回るパフォーマンスを発揮します。
- 幅広い言語サポート: Java, Python, Node.js, Clojure向けのライブラリを提供しており、babashka podsとも互換性があります。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト