网络拓扑策略中的cassandra复制

agyaoht7  于 2021-06-10  发布在  Cassandra
关注(0)|答案(2)|浏览(353)

我刚开始了解Cassandra。我对网络拓扑策略有疑问。所以我们知道cassandra中的节点是根据分区键的散列值来划分的。如果在使用复制因子3的写入操作期间是这样,则数据总共写入3个节点。
在属于哈希键值的节点中的第一个。接下来的两个副本被写入同一数据中心的不同机架中。第二个节点是具有相同的哈希值索引还是具有不同的哈希值索引。
如果不同,数据不是写在另一个散列值索引中吗?
请对此进行澄清。。

iklwldmw

iklwldmw1#

所有副本都将具有相同的哈希值。cassandra将使用这些散列值来计算二叉散列树,称为merkle树,修复程序使用这些树来识别记录版本中的差异。
如果你有兴趣,这里有一个解释这个过程。

pxyaymoc

pxyaymoc2#

使用多个dc创建的键空间通常具有以下结构:

CREATE KEYSPACE cycling
  WITH REPLICATION = { 
   'class' : 'NetworkTopologyStrategy',
   'datacenter1' : 3,
   'datacenter2' : 2 
  } 
AND DURABLE_WRITES = true ;

请注意,datacenter1将有3个行的副本和datacenter2中的2个副本。当数据写入cassandra时,每个dc都将满足keyspace定义中定义的复制因子。
行的写操作将在负责给定分区密钥的令牌的节点上完成。在最佳情况下,该行的副本将以顺时针方向写入集群中的两个后续节点。
在本例中,另一个dc datacenter2中遵循相同的顺序,但只复制了行的2个副本
第二个节点是具有相同的哈希值索引还是具有不同的哈希值索引?
默认情况下,根据partitioner和partitioner生成的令牌将分区分配给节点。

相关问题