2

この公式ベンチマークによると、ランダム読み取りで 129,000 ops/秒を実行します。しかし、私が知っているように、ランダム読み取りには少なくとも 1 つのディスクへのランダム アクセスが必要です (データベース全体がキャッシュよりもはるかに大きいため、キャッシュはランダム読み取りには何の助けにもなりません)。これにより、ランダム読み取りが 100 ops/秒より遅くなるはずです。

遅いマシンで 100,000,000 個の MD5 文字列を使って簡単なテストを行いました。ランダム書き込みは約 50,000 オペレーション/秒 (公式のベンチマークからそれほど遠くない) を実行し、ランダム読み取りは約 20 オペレーション/秒を実行します。

問題は、leveldb の公式ベンチマークがなぜこれほど高い結果を出すのかということです。ベンチマーク コードに特別な最適化は見られず、ベンチマークは SSD ディスクのようなものを使用しません。

4

3 に答える 3

1

リンクした公式のベンチマーク結果は、テスト マシンの RAM に完全に収まるほど小さいデータセットに対するものです。つまり、LevelDB キャッシュが保持していなくても、ファイルシステム キャッシュはすべてのデータを保持していました。

データセットが RAM の 5 倍および 50 倍大きい場合に HyperLevelDB がどのように実行されたかを示すテストを次に示します。(HyperLevelDB は、HyperDex 関係者によって開発された LevelDB のフォークであり、オリジナルに比べて書き込みスループットが向上しています。ただし、すべてがはるかに低速LMDBです。) http://symas.com/mdb/hyperdex/

于 2013-12-09T14:25:36.010 に答える
0

スループットに関するRicon East 2013プレゼンテーションには、優れたグラフがいくつかあり、巨大なスループットの問題と、Riak でそれをどのように修正したかが説明されています。

于 2013-10-08T13:42:07.227 に答える