2

単一のjarファイルを使用して配布されるプロジェクトに取り組んでいます。次のプロパティを持つキー値ストアが必要です。

  1. jar ファイルに埋め込むことができるため、追加のインストールは必要ありません。
  2. 最大数千万のペアを保持できます
  3. メモリ効率が良い。つまり、50M ペアで 100M 未満
  4. キーと値はどちらも単純な型です: long、int、small byte[]
  5. 商用利用の無料ライセンスはおまけです
  6. 同時実行、ACID、またはそのような高度なものは必要ありません。
  7. 償却されたルックアップ時間が 100 マイクロ秒未満。

BerkelyDB または JDBM2/3 以外の提案はありますか?

4

2 に答える 2

3

GNU Troveは、プリミティブ型を使用するため、標準の Java マップよりもメモリ効率の高いマップ ( TIntIntHashMap など) を多数提供しています。保存しているものについて何か知っていない限り、これよりも大幅にメモリ効率を高めることができるとは思えません。Trove は多かれ少なかれLGPL であるため、おそらく安全に使用できます。それがあなたの正確な仕様を具体的に満たしているかどうかはわかりませんが、RAMに収まる場合は試してみる価値があると思います.

ディスクにスワップする必要がある場合は、Ehcacheが適しています。特定の数のエントリの後に値をディスクに保存するように指定できます (正確なエントリ数がわからない場合は、バージョン 2.5 で新しく特定の量の RAM が使用された後に指定できます)。

于 2012-01-06T15:04:38.250 に答える
0

noSQL の実装を見てください。CouchDB、Cassandra などはかなり優れています。

比較するためにGoogle検索を行うと、必要なものが見つかります。

私のお気に入りは mongoDb ですが、残念ながら Java ベースではありません

よろしく

于 2012-01-06T15:04:34.833 に答える