【问题标题】:Synchronizing keyspaces in new cassandra datacenter在新的 cassandra 数据中心同步键空间
【发布时间】:2017-06-23 19:03:38
【问题描述】:

我有一个关于潜在场景的问题,想知道我们的假设是否正确。 (使用 cassandra 3.x 和 DSE 5.x)

我们从docs 了解到,为了向集群添加一个新的(新鲜的)数据中心,我们需要像这样临时设置 ReplicationFactor:

{'class' : 'NetworkTopologyStrategy', 'DC1' : 3, 'DC2' : 0 }

其中 DC1 是当前正在运行的数据中心,而 DC2 是我们正在添加的数据中心。 这项测试帮助我们了解了数据流从现有直播圈到全新直播圈的影响。

现在到我们的假设场景,即能够开始复制最初仅复制到一个 DC 的键空间,现在保存到其他当前正在运行的 DC。

创建键空间时:

CREATE KEYSPACE Foo WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'US' : 2, 'EU' : 0};

然后,当业务需求发生变化时:

ALTER KEYSPACE Foo WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'US' : 2, 'EU' : 2};

在所有 DC 为 0 的应用程序中定义所有新键空间是否被认为更安全,以便可以在某个时候修改该值。并且更改该复制因子是否足以触发密钥空间到其他数据中心的流式传输 - 还是我们还需要运行nodetool rebuild?

【问题讨论】:

    标签: cassandra distributed-database


    【解决方案1】:

    公认的做法是简单地不为您不希望将特定键空间复制到的 DC 定义复制因子。我认为如果你按照自己的方式去做,不会发生任何不好的事情,但我觉得不定义它会是更安全的方式。

    更改该复制因子是否足以触发将密钥空间流式传输到其他数据中心 - 还是我们还需要运行 nodetool rebuild?

    更改键空间上的复制因子将告诉所有未来对该键空间的写入也转到新的数据中心。但是,要将现有数据复制到新数据中心,您将必须运行nodetool repair 或nodetool rebuild。

    【讨论】:

    • 谢谢,我会接受你的回答!快速的附带问题,您是否有关于完全复制可以花费多少时间来获取一个密钥空间的指标,比如 ~1TB ?
    • @FredericCharette 这一切都取决于集群中的节点数量和可用的网络带宽。但是在一个地理位置分散的大型集群上,我能够让新 DC 中的节点在每个节点大约 20 分钟内引导 50GB。希望您在 DC 之间建立快速连接,并且可以做得更好。
    猜你喜欢
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2020-12-25
    • 2018-04-08
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多