1

しばらく Memcached を使用しており、最近 AWS で Membase のテストを開始しました。5 GB RAM、750 GB ディスク (Linux FC8) を備えた大規模な EC2 インスタンスで、Membase 1.6.0 の単一インスタンスをテストしています。

expiryPagerSleeptime が起動すると、SQLite が 1 時間ごとにエビクション パージをブロックしているように見えることに気付きました。これは予想されていたことですが (SQLite はデータベース レベルのロックを使用しているため)、Membase も同様にブロックするとは予想していませんでした。

この場合、SQLite が古いキーを削除している間に、Membase の「1 秒あたりの操作数」が数分間ゼロまたはゼロ近くに低下したようです。削除プロセスが完了すると、Membase サーバーはすぐに復旧します。SQLite がロックされている間も Membase RAM からの読み取りが続行されると予想していましたが、そうではないようです。すべてが停止します。スパイ クライアントは、データが到着しないのを待ってタイムアウトになると、例外のストリームをスローします。

ドキュメントからの私の印象は、Membase は非同期であり、RAM からの読み取りを引き続き提供するというものでした。Membase がキーの削除をブロックしないようにするための助けや提案をいただければ幸いです。このエビクション プロセスが完了し、ディスク キューのバックログがクリアされるまでに約 4 分かかるように見えるため、これは私たちにとって深刻な問題です。つまり、Membase は 1 時間ごとに 4 分間実質的にオフラインになります。

これは、データが RAM よりも大きくなった場合 (およびディスク上のサイズが大きくなった場合) に発生することにも言及する必要があります。データが RAM にあるだけのときは、キーの削除に関する問題に気付きませんでした (おそらく、RAM でのキーの削除があまりにも迅速に行われ、気付かないためです)。

4

1 に答える 1

1

情報を複製したくないので、この質問はここで回答され、説明されています: http://www.couchbase.com/forums/thread/membase-blocking-key-eviction

ペリー

于 2010-11-04T20:30:13.900 に答える