6

Berkeley DB(JE)ライセンスは、取引のキラーになる可能性があります。少数の顧客向けのJavaアプリケーションがありますが、デスクトップアプリケーションであるため、私の価格では個々のインスタンスのライセンスをサポートできません。

Berkeley DBに代わる推奨Javaはありますか? 商用またはその他(優れたKey-Valueストアの実装は重要なものになる可能性があります。私は他の場所でメンテナンスを延期することを好みます)。後続のキーサブセットを反復処理する必要があるため、ハッシュストア以上のものが必要です。基本的なハッシュストアはその検索をO(m * n)し、デスクトップマシンではストアが約50〜60GiBになると予想します。バッキングストアを単一のファイルに保持することをお勧めできる人には、追加のメリットがありますか?

4

10 に答える 10

9

あなたは間違いなくJDBM2を試してみるべきです、それはあなたが望むことをします:

  • ディスクでバックアップされた HashMaps/TreeMaps したがって、キーを反復処理できます。
  • アパッチ 2 ライセンス

加えて:

  • 高速、非常に小さなフットプリント
  • トランザクション
  • スタンドアロン jar は 145 KB しかありません。
  • 簡単な使い方
  • 1e9 レコードまで適切にスケーリング
  • Java シリアライゼーションを使用し、ORM マッピングは使用しません

アップデート

このプロジェクトは現在、MapDB http://www.mapdb.orgに進化しています。

于 2012-02-26T15:38:12.277 に答える
5

SQLiteはまさにあなたが望むものだと思います:無料(パブリックドメイン)、単一ファイルデータベース、ゼロ構成、小さなフットプリント、高速、クロスプラットフォームなど。ここにラッパーのリストがあり、Javaのセクションがあります。sqlite4javaを見て、Java+SQLiteの詳細をここで読んでください。

于 2011-02-17T17:51:39.827 に答える
3

単一のファイルにはなりませんが、組み込みデータベースが必要な場合は、Java DB (以前の仕事で使用して素晴らしい結果を出したApache Derbyのブランド変更されたバージョン)をお勧めします。

さらに、どちらも完全に無料です。

編集: 他のコメントを読んで、別のメモ: Java DB/Derby は 100% Java です。

于 2011-02-17T17:53:07.530 に答える
2

---ファイルのサイズを確認して編集---

50〜60 GiBファイル!DBエンジンがそれらすべてを一度にメモリにロードするのではなく、オフロードされたデータバッキングブロックの処理/清掃に非常に効率的であることを知っておく必要があるようです。

Cloudscapeがその任務を果たしているかどうかはわかりませんが、そうでなくても驚かないでしょう。

---元の投稿が続きます---

Cloudscapeは多くの場合その法案に適合します。Berkeley DBよりも少し多いですが、一部のJDK製品でも配布できるほどの牽引力を獲得しました。

于 2011-02-17T17:51:22.693 に答える
2

JavaDB別名 Derby 別名 Cloudscape は適切な選択です。これは純粋な Java SQL データベースであり、JRE に含まれているため、コードと一緒に出荷したり、ユーザーに個別にインストールするよう要求したりする必要はありません。

(実際には、一部の Linux パッケージ マネージャーが提供する JRE には含まれていませんが、簡単にインストールできる別のパッケージがあります)

ただし、Derby のパフォーマンスはかなり低いです。代替手段はH2です。これも、データベースを単一のファイルに格納する純粋な Java SQL データベースであり、再配布可能なライセンスの下で ~1MB の jar を使用しますが、Derbyよりもかなり高速で軽量です

私は H2 をいくつかの小規模なプロジェクトに喜んで使用してきました。JBoss はこれを気に入ってAS7 にバンドルしました。セットアップは簡単で、試してみる価値があります。

于 2012-09-30T10:57:06.020 に答える
2

Persistit は新しい挑戦者です。これは、高速で永続的でトランザクション対応の Java B+Tree ライブラリです。

それが維持されるという保証はないのではないかと心配しています。Persistit をサポートしている Akiban は、最近 FoundationDB に買収されました。後者は、将来に関する情報を提供しませんでした。

https://github.com/akiban/persistit

于 2013-07-31T08:26:27.300 に答える
2

ehcache を検討してください。これを java.util.Map としてラップするクラスを次に示します。リストやその他のデータ構造を値として簡単に保存でき、懸念される O(m*n) 問題を回避できます。ehcache は Apache 2.0 ライセンスであり、Terracotta から商用エンタープライズ バージョンが入手可能です。オープン ソース バージョンでは、キャッシュをディスクにスピルできます。キャッシュ エントリを削除しないことを選択した場合、実質的に永続的なキー値ストアになります。

于 2011-02-17T18:05:58.727 に答える
0

H2 http://www.h2database.com/

本格的な SQL/JDBC データベースですが、軽量で高速です

于 2014-03-18T08:10:57.740 に答える