Cassandra提交日志是否只是(在内存中)堆的备份

mol*_*aft 2 configuration cassandra

我是cassandra的新手,现在我正在尝试制作一台制作服务器.在文档中我读到数据和commitlog应该在分离的驱动器上(顺便说一句,我使用hdd),我认为commitlog将增加到许多Gb的数据,我创建了2个硬盘(都是100Gb),首先是数据(sstables)在第二个提交日志.但现在在配置中我看到: commitlog_total_space_in_mb: 4096,我认为这应该是'最大堆大小'.如果commitlog达到了这个限制,那么似乎memtables的大小增加,需要刷新到磁盘,并且memtables中包含的数据也会从commitlog中删除.

请告诉我,如果我是对的:commitlog就像堆的备份,不能增加到数百Gb?

而且我不需要为此创建100Gb硬盘,就足够4Gb分区(在另一个硬盘上,与存储数据(sstables)的地方不一样)?

Ric*_*ard 5

commitlog就像堆的备份而不能增加到数百Gb?

commitlog是临时存储,用于存储在memtables中的数据副本.这是因为电源丢失或者服务器在memtable可以写成SSTable之前崩溃.只要将memtable刷新到磁盘,就会删除commitlog段.

堆上的其余数据(缓存,飞行中数据等)永远不会存储在commitlog中.所以你的commitlog通常会比你的堆小得多.

而且我不需要为此创建100Gb硬盘,就足够4Gb分区(在另一个硬盘上,与存储数据(sstables)的地方不一样)?

较小的分区会很好,但您可能希望留出4 GB以上的空间.

  • 我只想补充一点,没有理由打扰单独的分区,除非你实际上有多个设备支持它们.如果它只是一个物理磁盘,则对其进行子分区没有任何好处. (3认同)