首页 文章

我们是否可以在现有群集中添加新的数据中心具有更高的复制因子

提问于
浏览
1

在Cassandra中,要在同一群集中添加具有更高复制因子的新数据中心,则会抛出错误,表示在任何源数据中心中找不到复制因子1的某个范围 .

我有数据中心(X-RF = 2)和(Y-RF = 1) . 我想添加数据中心(Z - RF = 3) .

我在Datacenter Z中添加了一个节点 . 但是

nodetool rebuild - X.

它因错误而失败

java.lang.IllegalStateException:无法在具有复制因子1的键空间中找到足够的流范围源(-3685074324747697686,-3680615207285604279)

所有Column系列的基本细节:

AND bloom_filter_fp_chance = 0.01

AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'

AND comment = ''

AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}

AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}

AND dclocal_read_repair_chance = 0.1

AND default_time_to_live = 0

AND gc_grace_seconds = 864000

AND max_index_interval = 2048

AND memtable_flush_period_in_ms = 0

AND min_index_interval = 128

AND read_repair_chance = 0.0

AND speculative_retry = '99.0PERCENTILE';

3 回答

  • 0

    您的当前配置(如键空间定义中所示)适用于单个DC . 你需要ALTER KEYSPACE它 - 包含另一个DC . 这将启动复制过程:将读/写的密钥将复制到新DC . 要完全复制所有数据,您需要(另外)使用 nodetool rebuild -- DC2 命令

  • 0

    您需要做的是ALTER KEYSPACE然后nodetool重建 . 复制从DESCRIBE KEYSPACE keyspace_name获得但在开头没有CREATE的文本 . 在复制中添加新数据中心 .

    ALTER KEYSPACE keyspace_name WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1, 'datacenter2' : 3 };
    

    然后做:

    nodetool rebuild -- datacenter1
    
  • 0

    基于你的评论 - “我已经改变了我的键空间,但对于像(system_distributed)这样的默认键空间,它会抛出错误”

    除了用户特定的键空间之外,请确保"system_distributed"之类的默认系统键空间在"NetworkTopologyStrategy"上(SimpleStratergy上没有用于多DC的键空间,除了本地策略)参考:Point-2 https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsAddDCToCluster.html

相关问题