4

私はオープン ソース製品を開発しており、組み込みの dbms が必要です。組み込みのオープン ソース データベースをお勧めできますか?

  • それぞれ10 GBを超えるオブジェクトを処理できます
  • 埋め込みに適したライセンスを持っています (GPL ではなく LGPL)。
  • ピュア Java である
  • (できれば)nosqlです。Sqlは機能するかもしれませんが、nosqlを好む

mongodb のようないくつかのドキュメント DBMS を調べましたが、それらは 4 または 16 MB のドキュメントに制限されているようです。

Berkeley DB は魅力的に見えましたが、GPL ライクなライセンスを持っています。

Sqlite3 は魅力的です。優れたライセンスであり、任意の最大 blob サイズでコンパイルできます。しかし、それは Java ではありません。JDBC ドライバーが存在することは知っていますが、純粋な Java システムが必要です。

助言がありますか?

ありがとう

スティーブ

4

1 に答える 1

6

これは古い質問ですが、私は最近これを調べていて、次のようなものに出会いました (そのうちの少なくとも 2 つは、この質問が尋ねられた後に書かれました)。これらのいずれかが非常に大きなオブジェクトをどのように処理するかはわかりません.10GBでは、製品でそのサイズのオブジェクトを念頭に置いているデータベース開発者はほとんどいないと思われるため、おそらくいくつかの深刻なテストを行う必要があります. データベース内のファイルの場所への参照だけで、それらをディスクに直接保存することを間違いなく検討します。

(ちなみに、以下の意見はすべてかなり表面的なものです。まだ本格的に使用していないからです)。


OrientDBは、私が見つけた 3 つの中で最も成熟しているように見えます。ドキュメントおよび/またはグラフ データベースのように見え、非常に高速であると主張しています (「RB+ツリー」データ構造 - B+ ツリーとレッド ブラック ツリーの組み合わせを使用)。外部依存関係がなく、超高速で軽量であると主張しています。たとえば、ここ数日で多くのコミットがあり、それを開発している活発なコミュニティがあるようです。また、 TinkerPopグラフ データベース標準にも準拠しており、別のレイヤーの機能 (Gremlin グラフ クエリ言語など) が追加されています。ACIDに準拠しており、REST やその他の外部 API、さらには Web ベースの管理アプリも備えています (組み込み DB で展開できると思われますが、よくわかりません)。

次の 2 つは、N(ot)O(nly)SQL の世界の単純なキー値ストア キャンプにさらに分類されます。

JDBM3は非常に最小限のデータ ストアです。ハッシュ マップ、ツリー マップ、ツリー セット、およびリンク リストがあり、メモリ マップ ファイルを介してディスクに書き込まれます。非常に軽量で高速であると主張し、完全にトランザクション対応であり、積極的に開発されています。

HawtDBは、同様に非常にシンプルで高速に見えます。BTree またはハッシュ ベースのインデックスは、メモリ マップされたファイルと共にディスクに永続化されます。(オプションで)完全にトランザクションです。過去 7 か月間 (2012 年 3 月まで) はコミットがなく、メーリング リストでの活動もあまりありません。それは良いライブラリではないと言っているわけではありませんが、言及する価値があります.

JDBM3 と HawtDB は非常に最小限であるため、派手な GUI を取得することはできません。しかし、どちらもスピードとシンプルさで非常に魅力的に見えると思います。


これらは、あなたの要件に一致することがわかったすべてです。さらに、Neo4J は優れています。これはグラフ データベースであり、現在ではかなり成熟しており、組み込みモードで非常にうまく機能します。ただし、GPL/AGPL ライセンスなので、コードをオープンソース化できない限り、有料ライセンスが必要になる場合があります: http://neotechnology.com/products/price-list/

もちろん、H2 SQL データベースを 1 つの大きなテーブルでインデックスなしで使用することもできます!

于 2012-03-31T11:56:05.327 に答える