NetworkTopologyStrategy中的Cassandra复制

问题描述 投票:0回答:2

我刚刚开始了解Cassandra。我对NetworkTopologyStrategy有疑问。因此,我们知道,Cassandra中的节点是根据分区键的哈希值进行划分的。如果是这样,则在复制因子为3的写入操作期间,数据将总共写入3个节点中。

位于散列键值之下的节点中的第一。接下来的两个副本将写入同一数据中心的不同机架中。此第二个节点将具有相同的哈希值索引还是将具有不同的哈希值索引。

如果不同,是否将数据写入另一个哈希值索引?

请对此提供一些澄清。

cassandra database-replication
2个回答
1
投票

所有副本将具有相同的哈希值。 Cassandra将使用这些哈希值来计算名为Merkle树的二进制哈希树,修复程序将使用这些哈希树来确定它们在记录版本中是否存在差异。

如果您有兴趣,请对此过程here进行解释。


0
投票

由多个DC创建的键空间通常具有以下结构:

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

请注意,datacenter1在datacenter2中将具有3个行的副本和2个副本。当将数据写入Cassandra时,每个DC都将满足键空间定义中定义的复制因子。

  1. 对行的写操作将在负责给定分区键的令牌的节点上完成。在最佳情况下,该行的副本将以顺时针方式写入群集中的两个后续节点。

  2. 在此示例中,另一个DC datacenter2中遵循相同的顺序,但该行仅复制了2个

此第二个节点将具有相同的哈希值索引还是它们将具有不同的哈希值?

将分区分配给节点是基于默认情况下由partitionersMurmur3Partitioner生成的令牌完成的。

© www.soinside.com 2019 - 2024. All rights reserved.