flush 期间所有 cassandra 的提交日志功能和行为

All cassandra's commit log functions and behaviour during flush

我正在使用 cassandra 2.2.1 并注意到 nodetool flush commitlog 文件没有被删除(实际上,可能有些是,我没有看不到,但是 commitlog 目录不为空)。

  1. nodetool flush 期间发生了什么,或者只是定期 flush?是否应该在此过程中删除所有 commitlog 文件?

  2. 来自commitlog的数据是仅在节点修复期间使用还是在flush期间使用?

提交日志文件是预先分配和重用的,而不是删除的。这提高了性能。查看更多信息 here

如果节点在 memtable 刷新到 SSTable 之前关闭,则使用提交日志。这是通过重播提交日志来重新创建内存表来完成的。当你进行刷新时,commitlog 中的 space 可以被回收和重用。