11

シナリオは約 10 億レコードです。各レコードのデータ サイズは 1kb で、SSD に格納されます。最高のランダム読み取りパフォーマンスを提供できる kv ストアはどれですか? ディスク アクセスをクエリごとに 1 回だけに減らす必要があり、すべてのデータ インデックスがメモリに格納されます。

Redis は高速ですが、1 TB のデータをメモリに格納するにはコストが高すぎます。LevelDB はクエリごとに数回ディスクを読み取ります。私が見つけた最も近いものは fatcache ですが、永続的ではありません。これは、SSD を利用した memcached です。

助言がありますか?

4

4 に答える 4

9

RocksDBは、メモリやフラッシュ ディスクなどの高速ストレージ向けに最適化されており、高度なカスタマイズが可能です。最初の一括読み込み後にアプリケーションが読み取り専用になっている場合は、すべてを 1 つの大きなファイルに圧縮するように RocksDB を構成できます。そのようにして、読み取りは最大で 1 つの I/O を持つことが保証されます。ただし、アプリケーションが読み取りと書き込みの両方を処理する場合、読み取りごとに最大で 1 つの I/O を実行するには、rocksdb を非常に頻繁に圧縮するように構成する必要があるため、書き込みパフォーマンスを犠牲にする必要があり、書き込みパフォーマンスが低下します。

RocksDB のチューニング ガイドもここにあります。

于 2014-09-15T22:36:30.053 に答える
2

SSD ストレージ用に最適化された facebook ライブラリであるRocksDBを試してみてください。Ardbを試すこともできます。これは、RockDB/LevelDB/LMDB 上の redis プロトコル互換の NoSQL DB ビルドです。

于 2014-09-14T03:09:52.260 に答える
0

エアロスパイクを見たことがありますか?私はそれを使用していませんが、SSD で優れたパフォーマンスを発揮すると主張しています。

于 2014-09-13T08:45:32.280 に答える
0

LMDB は RocksDB よりも高速で、1/3 のメモリを使用します。また、LMDb はチューニングを必要としません。RocksDB では、LMDB に近いパフォーマンスを得るために、40 以上のパラメーターを慎重に調整する必要があります。

http://www.lmdb.tech/bench/inmem/scaling.html

また、LMDB は完全にトランザクション対応で 100% クラッシュ防止ですが、RocksDB はそのどちらでもありません。

于 2014-09-23T06:35:30.953 に答える