5

私はcassandraを使用していますが、 commitlog2.2.1ファイルが削除されていないことに気付きました(実際にはいくつかあるかもしれませんが、私は見ていませんが、commitlogディレクトリは空ではありません)。nodetool flush

  1. 通常のフラッシュnodetool flush中または単にフラッシュ中に何が起こっていますか? このプロセス中にすべてのcommitlogファイルが削除されることになっていますか?

  2. commitlogからのデータは、ノードの修復時またはフラッシュ時にのみ使用されますか?

4

1 に答える 1

6

コミットログ ファイルは、削除されるのではなく、事前に割り当てられて再利用されます。これにより、パフォーマンスが向上します。詳細については、こちらを参照してください。

memtableがSSTableにフラッシュされる前にノードがダウンした場合、コミットログが使用されます。これは、コミットログを再生して memtable を再作成することによって行われます。フラッシュを実行すると、コミットログ内のスペースを回収して再利用できます。

于 2015-09-17T11:50:54.670 に答える