所有cassandra在刷新期间提交日志功能和行为

ka4*_*eli 4 cassandra nodetool cassandra-2.0

我正在使用cassandra 2.2.1并注意到在没有删除nodetool flush commitlog文件之后(实际上,可能有些是,我没有看到,但是commitlog dir不是空的).

  1. nodetool flush正常冲洗期间或正常冲洗时发生了什么?是否应该在此过程中删除所有commitlog文件?

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

Jim*_*yer 5

Commitlog文件是预先分配和重用的,而不是删除的.这提高了性能.在此处查看更多信息.

如果节点在将memtable刷新到SSTable之前关闭,则使用commitlog.这是通过重播commitlog来重新创建memtable来完成的.当您执行刷新时,可以回收并重用commitlog中的空间.

  • 正确.如果数据被成功刷新,则简单地丢弃与刷新相对应的commitlog中的信息. (2认同)