【发布时间】:2018-04-09 20:49:53
【问题描述】:
我遇到了一个问题。我生成一些数据,并获取所有数据。它运作良好。之后,我关闭了所有 CassandraDaemons 并重新启动它们,我无法获取所有数据,因为某些列的数据丢失了。我不知道为什么会这样。有没有人可以给我一些建议?非常感谢。顺便说一句,我用的是 Cassandra 2.1,复制因子是 1。
【问题讨论】:
-
使用 Cassandra,您可以在不同的一致性级别 (CL) 上进行查询。您在哪个 CL 上编写和阅读以及您是如何编写/阅读的(即 cqlsh 或驱动程序等)?
-
一致性级别为 ONE。我通过 Thrift API 读写数据。
-
好像是Cassandra在重启的时候没能重播commitlog,导致数据丢失。但我不知道为什么。修复数据丢失的一种解决方案是在杀死 CassandraDaemons 之前使用 nodetool 强制将数据刷新到 SSTable 中。
-
对不起,我想是因为我在杀死 Cassandra 之前清除了缓存。以为守护进程仍在运行时不会释放缓存的内存。然而,我错了。
-
对不起,我想是因为我在杀死 Cassandra 之前清除了缓存。以为守护进程仍在运行时不会释放缓存的内存。然而,我错了。
标签: cassandra