2017-01-02 109 views
0

我开始使用cassandra 3.7,并且始终对commitlog有问题。当电脑出现意外停电时,例如cassandra服务不重新启动。我尝试启动命令行,但总是出现错误cassandra could not read commit log descriptor in file无法读取文件中提交日志描述符

我必须删除所有提交日志才能启动cassandra服务。问题是我失去了大量的数据。我试图将复制因子增加到3,但是是一样的。

我能做些什么来减少丢失的数据量?

pd:我只有一台pc使用cassandra数据库,不可能添加更多的pcs。

回答

0

我认为你的选择是解决这个问题,因为它不太可能有一个有保证的解决方案来防止承诺表文件在突然停电时被破坏。由于您只有一个节点,因此恢复数据变得更加困难。在单个节点群集上将复制因子增加到3是无济于事的。

你可以尝试的一件事是减少memtables被刷新的频率。在刷新memtable时,提交日志中的条目将被丢弃,从而减少丢失的数据量。 Details here。这将不会解决根本问题

+0

我会尝试修改此值以便更频繁地执行cassandra刷新memtable到磁盘。我将数据库安装在带有4gb ram的电脑中,那么正确的配置是什么? –

相关问题