为什么我的卡桑德拉提示文件不断损坏



我们正在运行多个运行 Cassandra 的 Kubernetes 集群。 在滚动重新启动 Cassandra Pod 时,我们通常的过程是登录每个 pod 并提交nodetool drain然后触发该 Pod 的重新创建。但是通常当 pod 重新启动时,我们会收到这样的错误

ERROR [HintsDispatcher:2] 2017-08-07 11:09:32,489 HintsDispatchExecutor.java:243 - Failed to dispatch hints file 5fdd139d-4465-4825-85ef-f380bddcb67d-1502100535128-1.hints: file is corrupted ({})

这些损坏的文件会阻止Cassandra启动。有没有办法告诉 Cassandra 在停止之前刷新所有缓冲区并停止写入,以确保没有留下损坏的文件?

您可以尝试禁用提示切换,或尝试在排出后截断提示:

nodetool truncatehints

如果您关心一致性,请在该过程后运行修复。

警告:如果您使用的是任何一致性设置或 RF=1,这可能会导致一些数据丢失。

最新更新