4

Cassandra 1.2.2 で提供される設定ファイルの例にrow_cache_size_in_mbは 0 があり、行キャッシュが完全にオフになります。行キャッシュが読み取りパフォーマンスの向上をもたらすと宣伝されていることを考えると、行キャッシュがまったく確保されておらず、数十 MB も確保されていないことに驚きました。

ほとんどのシナリオで、行キャッシングがもはや価値がないというのは実際にあるのでしょうか? それとも、ほとんどのシナリオで価値がありませんでしたか? の代わりとしてmemcachedのみ価値がありますか?

4

2 に答える 2

4

行キャッシュは、比較的小さな列ファミリーから多くの読み取りを行う場合に役立ちます。それ以外の場合、データはOSファイルシステムのキャッシュに格納されますが、キャッシュされたSSTableからよりも行キャッシュ オブジェクトから応答を構築する方がCPU消費量が少なくなります。私が行ったいくつかのテストでは、行キャッシュからの読み取りが 30% 高速でしたが、これはデータ モデルに大きく依存します。

行キャッシュのもう 1 つのユース ケースは、OS キャッシュ ポリシーに依存するのではなく、優先的に列ファミリーをキャッシュに固定する場合です。

ただし、キャッシュできない CF の場合、行キャッシュによってパフォーマンスが低下する可能性があります。これがおそらくデフォルトでオフになっている理由です。したがって、適切なヒット率が得られる場合にのみ行キャッシュを使用してください。これは nodetool info 出力から確認できます。

于 2013-03-01T18:13:01.157 に答える
3

パーティション全体をメモリに格納する必要がないため、行キャッシュは 2.1 以降より便利になりました。これは、テーブル定義のパーティション設定ごとの行数で実現されます。これは、最新の x を選択し、クラスタリングの順序を使用するクエリに最適です。

http://www.datastax.com/dev/blog/row-caching-in-cassandra-2-1

于 2014-12-03T14:36:25.963 に答える