我正在使用cassandra 2.2.1
并注意到在nodetool flush
commitlog 文件未被删除后(实际上可能是某些文件,我没有&#t; t看,但是 commitlog dir不是空的)。
nodetool flush
期间或正常 flush 期间发生了什么?是否应该在此过程中删除所有 commitlog 文件?
来自 commitlog 的数据是仅在节点修复期间使用还是在 flush 期间使用?
答案 0 :(得分:5)
Commitlog文件是预先分配和重用的,而不是删除的。这提高了性能。查看更多信息here。
如果节点在将memtable刷新到SSTable之前关闭,则使用commitlog。这是通过重播commitlog来重新创建memtable来完成的。当您执行刷新时,可以回收并重用commitlog中的空间。