【发布时间】:2015-04-08 23:36:58
【问题描述】:
我正在编写一个 Java 程序,使用 Hector 与 cassandra 交互。我发现在运行批处理导入数据后,我可以使用我的 Java 客户端和 cassandra-cli 程序读取新写入的行。但是重启服务器后,数据就消失了。
其他一些有趣的信息...我最初在我的家用机器(Windows)上构建了一个大型数据库,使用旧版本的 cassandra (0.8),然后将数据传输到我当前的生产机器。我发现服务器重启后旧数据仍然存在。我还发现较小的数据库似乎更新得很好,在服务器重启后我没有看到任何数据丢失。
我已尝试升级到最新版本的 cassandra (1.1.2),并移回 Java 6_33 来运行服务器(从 7_4 开始)。没有任何效果。请帮忙!
【问题讨论】:
-
导入数据后重启前尝试“nodetool flush”查看数据是否存在。这不是解决方案,而是找出问题原因的方法
-
你有没有设置过 ttl 列?
-
你的生产集群有多少个节点,你的射频是多少,你读/写的一致性级别是多少?
-
@rs_atl: 单节点,所以我猜射频和一致性级别应该不重要吧?无论如何,我没有改变这些默认值。
-
@Jasonw:我猜 ttl = 生存时间?我什至不知道这个功能,所以我很有信心我没有使用它。