首页 > 解决方案 > Cassandra的提交日志放在SSD上会不会有写放大问题?

问题描述

AFAIK,当 Cassandra 进行写入时,它会写入 Memtable 以及写入磁盘上的提交日志(附加)。如果提交消息非常小,太小而无法填满 SSD 页面,从长远来看,这不会导致一些碎片和写入放大吗?(磁盘填满后)

标签: cassandra

解决方案


这篇 datastax 文章可能会回答您的问题: https ://www.datastax.com/dev/blog/updates-to-cassandras-commit-log-in-2-2

具体来说:

自 1.1 版以来,Cassandra 中的提交日志基础设施的一个特性就是能够重用段。这样做是为了减少日志驱动器上的碎片——一些提交日志段将由数据库保留,以便在它们包含的数据被刷新后覆盖,这意味着大多数时间提交日志不需要分配新空间以便写入。这并不能消除日志可能导致的所有碎片,因为当内存表刷新正在进行时,它会在达到其空间配额后继续写入,然后它会释放过度分配的空间。尽管如此,由于分配和释放的空间较少,因此在驱动器上引入碎片的可能性较低。


推荐阅读