我开始使用cassandra 3.7并且我总是遇到commitlog问题。当PC意外完成停电时,例如cassandra服务不会重新启动。我尝试启动命令行,但始终出现错误cassandra could not read commit log descriptor in file
。
我必须删除所有提交日志才能启动cassandra服务。问题是我丢失了很多数据。我试图将复制因子增加到3,但是相同。
我可以做些什么来减少数据丢失量?
pd:我只使用一台PC来使用cassandra数据库,因此无法添加更多的PC。
答案 0 :(得分:0)
我认为你的选择是解决这个问题,因为它不太可能有一个有保障的解决方案来阻止提交表文件在突然断电时被破坏。由于您只有一个节点,因此恢复数据变得更加困难。在单个节点群集上将复制因子增加到3无济于事。
您可以尝试的一件事是减少刷新memtables的频率。在刷新memtable时,将丢弃提交日志中的条目,从而减少丢失的数据量。 Details here。但这不会解决根本问题