无法在键空间中找到足够的流范围来源

Unable to find sufficient sources for streaming range in keyspace

我必须在其他地区添加新的 Cassandra 数据中心。现在这里的问题是以前的数据中心是 2.2.9 版本,我在新数据中心创建了新节点是 2.2.11.

在 nodetool 上重建新数据中心的所有新节点失败并出现错误

Unable to find sufficient sources for streaming range in keyspace.

即使是系统密钥空间也会导致此错误,例如 system,system_traces ,system_distributed).

此系统键空间在 SimpleStrategy 上。

搜索这个问题我发现每个人都在谈论将策略更改为 NetworkTopology 。

但是,如果我不想在所有数据中心保留副本,那我为什么要更改拓扑(策略)。

在以前的Cassandra 版本中我从未见过这样的限制。

为了避免或忽略 nodetool 重建时的这个问题,人们说要添加

-Dcassandra.consistent.rangemovement=false

但是添加每个新节点都需要这样做吗?

重建命令对其他键空间的影响。

系统表默认带有"SimpleStrategy"。任何具有 SimpleStrategy 的键空间仅适用于单数据中心 Cassandra 集群。

NetworkTopology 是必需的,建议用于多 DC 集群。建议将 system_auth 和 system_distributed 等系统键空间更改为复制因子大于 1(理想情况下为 3)的 NetworkTopology 策略,并复制到集群中涉及的所有 DC。

应用程序密钥空间可能会或可能会被复制到其他 DC。但是将它们的复制策略更改为 NetworkTopology 并仅复制到一个 DC 并没有什么坏处。

我已将系统的密钥空间拓扑更改为所有 DC 上复制因子为 2 的网络拓扑。

改变系统的拓扑结构没有坏处。

cassandra 22X 版本的文档中没有任何地方提到它。但是在 30x 及更高版本的最新版本文档中提到更改系统密钥空间的拓扑结构。