Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 连接丢失后的多DC复制_Cassandra - Fatal编程技术网

Cassandra 连接丢失后的多DC复制

Cassandra 连接丢失后的多DC复制,cassandra,Cassandra,我们有2个DC,通过不稳定的VPN连接,每3小时会失去一次连接 所有数据都写入DC A并复制到DC B。 在其中一个“连接丢失”事件之后,DC B上的数据丢失(停机窗口受影响) 我的假设是,DC B将在重新建立连接并获取所有丢失的数据后恢复复制。这个假设错了吗 卡桑德拉有以下复制数据的方法: 提示-当hinted\u handoff\u enabled设置为true时,当节点重新联机时,将重播突变,但这仅发生在max\u hint\u window\u in \u ms定义的窗口内(默认值为3

我们有2个DC,通过不稳定的VPN连接,每3小时会失去一次连接

所有数据都写入DC A并复制到DC B。 在其中一个“连接丢失”事件之后,DC B上的数据丢失(停机窗口受影响)

我的假设是,DC B将在重新建立连接并获取所有丢失的数据后恢复复制。这个假设错了吗


卡桑德拉有以下复制数据的方法:

  • 提示-当
    hinted\u handoff\u enabled
    设置为true时,当节点重新联机时,将重播突变,但这仅发生在
    max\u hint\u window\u in \u ms
    定义的窗口内(默认值为3小时),但这也可能受到每个表gc\u grace\u seconds设置的影响(请参阅)。但是可以在每个DC的基础上禁用提示的使用(通过
    hinted\u handoff\u disabled\u datacenters
    )。此外,提示不会立即重放,因为它们会被
    提示的切换\u throttle\u(单位:kb
    )和
    最大提示\u传递\u线程
    参数限制
  • 修复-需要显式执行,但可能比提示更有效,特别是因为您可以在特定表上运行它
  • 读取修复-对于多DC,仅当您使用仲裁之类的方法读取数据时,它才起作用
如果提示已启用,而您仍然错过数据-检查提示是否已重播,或者提示是否仍在重播-这将显示磁盘上有多少提示,等等

如果问题周期性地发生,并且您可以检测到它,那么显式修复可能会工作得更快-但是在这种情况下,您需要禁用交叉DC提示,这样节点就不会两次接收数据