Cassandra 卡桑德拉复制因子
假设我在一个Cassandra集群中有两个数据中心(DC1、DC2) DC1-4节点。 DC2-4节点 最初,我将所有键空间的复制因子设置为{DC1:2,DC2:2}。(网络拓扑策略) 但是过了一段时间,让我们假设我更改了键空间,并将所有键空间的复制因子更改为{DC:2}(删除DC1)。DC1没有复制因子 那么现在会发生什么?DC1将来是否会将任何数据写入其中?Cassandra 卡桑德拉复制因子,cassandra,replication,cassandra-2.1,Cassandra,Replication,Cassandra 2.1,假设我在一个Cassandra集群中有两个数据中心(DC1、DC2) DC1-4节点。 DC2-4节点 最初,我将所有键空间的复制因子设置为{DC1:2,DC2:2}。(网络拓扑策略) 但是过了一段时间,让我们假设我更改了键空间,并将所有键空间的复制因子更改为{DC:2}(删除DC1)。DC1没有复制因子 那么现在会发生什么?DC1将来是否会将任何数据写入其中? 所有令牌范围是否仅分配给DC2 如果排除DC1,则不会为该键空间写入数据,也不会从DC1读取数据。在关闭DC1之前,请确保对DC2中的
所有令牌范围是否仅分配给DC2 如果排除DC1,则不会为该键空间写入数据,也不会从DC1读取数据。在关闭DC1之前,请确保对DC2中的服务执行
nodetool repair
,以确保已同步所有数据。更换射频后,您
当您更改特定键空间的RF时,drivers和Cassandra本身会重新计算令牌范围分配,同时考虑到数据中心的相关信息。如果排除DC1,它将不会为该键空间写入数据,也不会从DC1读取数据。在关闭DC1之前,请确保对DC2中的服务执行
nodetool repair
,以确保已同步所有数据。更换射频后,您
当您更改特定键空间的RF时,drivers和Cassandra本身会重新计算令牌范围分配,同时考虑数据中心的相关信息。这是一个有点奇怪的问题,为什么不建立一个示例集群并进行尝试呢?:)无论如何,在这种情况下,卡桑德拉的行为将完全符合你的预期。不再向DC1写入任何内容,所有令牌范围将仅分配给DC2。DC1中的现有数据会发生什么变化?如果所有的令牌范围都只分配给DC2,它将如何读取?那么,数据将只从DC2读取。这是一个有点奇怪的问题,为什么不建立一个示例集群并试用它呢?:)无论如何,在这种情况下,卡桑德拉的行为将完全符合你的预期。不再向DC1写入任何内容,所有令牌范围将仅分配给DC2。DC1中的现有数据会发生什么变化?如果所有令牌范围仅分配给DC2,将如何读取?然后,数据将仅从DC2读取。