如果直流停机,我应该担心卡桑德拉提示吗?

Should I be worried about cassandra hints in case of dc downtime?

我很快就会从 1 个 dc 扩展到 2 个 dc,因此我有点担心在使用 LOCAL_QUORUM 时会发生什么,我有一个 dc 出现故障。

假设我有 2 个 dc:dc1 和 dc2。密钥空间 A 将同时沿 d1 和 d2 复制。

现在,如果在使用本地仲裁在 dc1 中写入时无法将我的写入复制到 dc2,那么提示有多大会成为一个问题。我知道写入将被认为是成功的,因为使用本地仲裁,但由于需要复制数据以便可以在 dc2 中读取相同的数据以进行分析,因此 cassandra 提示的构建会成为问题吗?

这实际上取决于写入量、您希望如何从停机时间恢复,以及停机时间可能有多大:

  • Cassandra 无论如何都会向所有节点发送写入 - LOCAL_* 只是说确认应该来自本地 DC
  • 如果另一个 DC 关闭,提示将写入磁盘,并在 DC 启动后重播
  • 如果 DC 停机时间超过 max_hint_window_in_ms,那么您无论如何都需要执行修复,因此重播提示只会给服务器增加额外的负载

如果您预计 DC 会在更长的时间内一直停机,您可以通过 hinted_handoff_disabled_datacenters 设置禁用为另一个 DC 写入提示 - 但您需要在 DC 恢复后执行修复。

P.S。我看到 datastax 标记 - 这是否意味着您正在使用 DSE?如果是,什么版本?因为在 DSE 6.x 中,NodeSync 可以赶上丢失的数据。