Docから
キーキャッシュは、列ごとにメモリ内のキーの場所を保持します。
キーキャッシュは、存在するすべてのsstableのキーのインデックスとして機能します。
キーキャッシュはsstableごとに維持されます。したがって、キーキャッシュは、SSTable[最小]ごとに1つのディスクシークを節約できます。すべてのキールックアップは、すべての安定版のブルームフィルターに少なくともヒットすることになります。成功すると、sstableインデックス[デフォルトで127の間隔でキーサンプルへのポインタ]ルックアップをスキップするためだけにキーキャッシュが検証されます。
カサンドラのパスを読むはこのようになります
Memtable->行キャッシュ(オフヒープ)->ブルームフィルター->キーキャッシュ->SSTableインデックス[ミスした場合] ->ディスク
太字のすべては、それらがメモリ内に維持されていることを意味します(ヒープ内またはヒープ外のいずれか)。したがって、それらはディスクシークに加算されません
すべてのsstableは、独自のキーキャッシュを維持する必要があります。スライド番号101のソースとスライド番号23のソース2
キーキャッシュミスの場合、sstableインデックスが使用されます。これにより、128番目の範囲でキーが存在する可能性のある手がかりが得られます。それ以降、キーのディスクシークが開始されます[1から多数の場合があります]。
cassandraがすべてのsstableのキーキャッシュサイズをどのように決定するかについての手がかりが得られたら、もう一度答えを更新します[key_cache_conf / no_of_sstables]?