【发布时间】:2017-05-31 09:28:52
【问题描述】:
我试图了解数据在 Cassandra 中的多个节点上是如何准确复制的。假设我们有 6 个节点,复制因子为 3。为简单起见,我们假设单个数据中心和单个机架。由于 RF 为 3,因此数据存储在 3 个副本中。我想了解这3个副本是如何决定的。
参考http://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2 中的示例(第一个图像第二部分,即带有虚拟节点),假设我们的行属于分区器决定的虚拟节点“E”。因此,根据虚拟节点在不同节点之间的分布情况,该行必须存在于节点 1、5、6 中。
但是来到文档 - http://docs.datastax.com/en/cassandra/2.1/cassandra/architecture/architectureDataDistributeReplication_c.html ,它说即使在 SimpleStrategy 的简单情况下,节点上的第一个副本也是由分区器确定的。额外的副本被放置在环顺时针方向的下一个节点上。那么数据将存储在 E、F、G 虚拟节点中还是可能是节点 1、2、3?
哪一个是正确的?第一个链接或文档?
谢谢!
【问题讨论】:
标签: cassandra database-replication