刷新和不刷新节点的Cassandra数据持久性

a64a0gku  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(190)

如果我不执行nodetool flush,Cassandra是否不会将表持久化到磁盘?我使用CQL创建了表和键空间,但我在执行刷新时只看到了 *-data.db文件。如果没有它,数据将丢失?

nwsw7zdq

nwsw7zdq1#

当数据被写入节点时,它首先被写入磁盘上的commitlog,然后被写入RAM中的memtable。
Cassandra会从RAM中刷新memtable,并在其数据占用量超过memtable_cleanup_threshold时将其写入磁盘上的SSTable。只有当这种情况发生时,commitlog才会被清除。Nodetool刷新会将所有memtable转换为SSTable,即使memtable_cleanup_threshold未达到。
所以答案是否定的,你的数据不会丢失。最终memtable的大小会达到阈值,并被写入磁盘上的一个SSTable。

相关问题