0

この記事SSTable の観点からの読み取りと書き込み(かなり古い記事です) で、著者は indexdb と sstable ファイルがメモリ マップ ファイルを使用してウォームアップされていると述べています。

各SSTableの行キーはindex.dbという別のファイルに保存され、起動時にCassandraはウォームアップのために「これらのファイルを調べます」。Cassandra はメモリ マップされたファイルを使用するため、起動時にファイルを読み取るときに、それらのファイルへの最初のアクセスがメモリから提供されることが期待されます。

CommitLogSegment では MappedByteBuffer が使用されていますが、SSTable ローダー/リーダーでは使用されていません。また、MappedByteBuffer をファイル チャネルにマッピングするだけでは、ファイルがメモリに読み込まれません。load を明示的に呼び出す必要があると思います。

私の質問は、Cassandra が起動するとき、どのようにウォームアップするのですか? そして、この記事の声明に何か欠けていますか?

4

1 に答える 1

1

「索引ファイルを調べる」は、おそらく索引のサンプリングを指します。ある時点で、Cassandra はサンプリングの目的で起動時にファイルを読み取っていました。

Cassandra 1.2 以降、そのプロセスの結果はパーティション サマリーファイルに保持されるようになりました。

于 2016-12-11T13:34:53.137 に答える