连接丢失后的多dc复制

ctehm74n  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(366)

我们有两个直流,这是通过一个不稳定的vpn连接,每3小时失去一次连接。
所有数据都写入到dc a并复制到dc b。在其中一个“连接丢失”事件之后,dc b上的数据丢失(停机窗口受影响)。
我的假设是,在重新建立连接并获取所有丢失的数据之后,dc b将恢复复制。这个假设错了吗?

xiozqbni

xiozqbni1#

cassandra有以下复制数据的方法:
提示-何时 hinted_handoff_enabled 如果设置为true,则当节点重新联机时将重播突变,但这仅发生在由定义的窗口内 max_hint_window_in_ms (默认值为3小时),但这也可能受到每表gc\u grace\u seconds设置的影响(有关详细信息,请参阅本文)。但是可以在每个dc的基础上禁用提示的使用(通过 hinted_handoff_disabled_datacenters ). 而且,提示不会立即重放,因为它们会被 hinted_handoff_throttle_in_kb & max_hints_delivery_threads 参数。
修复-需要显式执行,但可能比提示更有效,特别是因为您可以在特定表上运行它;
读取修复-对于多dc,只有在您使用仲裁之类的方法读取数据时才能工作。。。
如果提示已启用,但仍然缺少数据-请检查提示是否已被重放,或者它们是否仍在重放-有一些指标显示磁盘上有多少提示,等等。
如果问题周期性地发生,并且您可以检测到它,那么显式修复可能工作得更快—但是在这种情况下,您需要禁用交叉dc提示,这样节点就不会两次接收数据了。。。

相关问题