1

単一の列を頻繁に更新するプロセスがあります。最後に、圧縮が実行される前に、私の列の値は複数のSSTableに格納されます。

Memtable はソートされ、同期的にディスクにフラッシュされます。この場合、ディスク上の SSTable もソートされていると仮定します。これに基づいて、Cassandra は単一の SSTable (正のブルーム フィルターを使用) を調べて、列の最新の値を見つける必要がありますが、そうですか?

どこかで読んだことがあるので、私は少し混乱しています.

4

1 に答える 1

2

https://issues.apache.org/jira/browse/CASSANDRA-2498

したがって、答えは次のとおりです。Cassandra バージョン < 1.0 は、各 SSTable に適用されます。フォーム 1.0 からは、最近の SSTable からのデータのみが読み取られます。ブルーム フィルターに加えて、各 SSTable には特定の列の最新の更新時刻も含まれているためです。

これは次の質問につながります。ブルーム フィルターは RAM にあります。「最終更新時刻」(SSTable メタデータ) はどうですか? アクセスするにはディスクシークが必要ですか? この場合、Cassandra は列値を含む各 SSTable に対してディスク シークを必要とします。

于 2012-08-07T07:23:13.070 に答える