首页 文章

Cassandra:当整个数据中心出现故障时会发生什么?

提问于
浏览
0

我有一个带有3个数据中心的Cassandra集群,每个数据中心有6个节点 - DC1,DC2和DC3 like this . 可以说我有一个 NetworkTopologyStrategy ,在创建键空间的时候,

创建KEYSPACE测试WITH REPLICATION = {'class':'NetworkTopologyStrategy','DC1':3,'DC2':3,'DC3':3}

这样可确保在每个数据中心的3个节点上复制任何写入,之后写入成功 .

What happens if an entire datacenter goes down ?

让我们说Dc3中的所有节点都下降了!在这种情况下,写入更新表的请求,即使写入一致性级别为1(一致性级别:写入必须写入提交日志和至少一个副本节点的可记忆 . 我认为它需要写入每个数据中心至少有一个节点 . )会失败吗?此请求将尝试更新DC3中的至少3个节点,由于所有节点都已关闭,因此无法更新 .

https://docs.datastax.com/en/cassandra/2.0/cassandra/architecture/architectureDataDistributeReplication_c.html

1 回答

  • 1

    如果你写的CONSASSENCY LEVEL为1,你的写作不会失败 .

    Explanation:

    您的密钥空间在每个数据中心指定3个副本,以确保每行数据将有9个副本 . 当您在CONSISTENCY LEVEL为ONE时写入时,协调员将在将数据写入单个节点的memtable和commitlog(仅每个节点,而不是每个数据中心的一个节点)后成功 .

    复制品会发生什么?数据存储为暗示提示(默认为3小时),一旦节点启动就会复制(在您的情况下数据中心3启动) . 如果节点在3小时之前没有启动,那么它将尝试使用builtin repair mechanism修复数据 .

    这确保在每个数据中心的3个节点上复制任何写入,之后写入成功

    如果您使用CONSISTENCY LEVEL ONE写作,那么您的声明并不适用 .

    有关Multiple Datacenter Write的更多详细信息 .

    每个数据中心有三个副本:此配置允许每个复制组的一个节点在LOCAL_QUORUM的强一致性级别或每个数据中心使用一致性级别ONE的多个节点故障时发生故障 .

相关问题