首页 > 解决方案 > Cassandra Rebuild 每次重新启动时都会从头开始

问题描述

需要帮忙。最近我们在现有集群中添加了新的 DC。我们在新 DC 中的每个节点上使用重建命令将历史数据从旧 DC 流式传输到新 DC。

我面临的问题是,由于大数据量和较长的 GC 暂停,旧 DC 节点中的 Cassandra 服务停止,并且当它发生时,重建也停止。当我们再次启动它时,它显示它再次流式传输相同数量的数据。

我们正在使用 Cassandra 3.11.x。根据 Cassandra 文档,如果重建命令停止并且您再次运行它,它将从停止的偏移量恢复流式传输。但似乎没有发生。

任何人都可以帮助了解重新启动后重建的工作原理以及如何克服这个问题。

提前致谢

标签: cassandracassandra-3.0

解决方案


您没有具体说明“似乎没有发生”是什么意思。理想情况下,您需要明确描述您如何确定它没有“发生”。否则,给你一个有意义的答案有点困难。

在任何情况下,节点都会记录哪些令牌范围和哪些键空间已被流式传输并可供服务。此信息存储在system.available_ranges表中。

一旦给定键空间的特定范围的令牌已成功流式传输到节点,就会在available_ranges表中创建一个条目,因此如果您尝试重新运行rebuildor bootstrap resume,已完成的范围将不会再次重新流式传输。干杯!


推荐阅读