Cassandra 升级限制

Cassandra Upgrade limitations

我们正在 10 节点生产集群中从 DSE 4.5 升级到 DSE 4.8.9。 我们的应用程序中有每日批处理作业 运行,这些作业批量加载集群中的数据,一些作业截断表并加载新数据,还有一些加载器作业连续插入数据。

考虑这些场景:

案例一: 假设我的一个节点安装了 DSE 4.8 但 upgradesstables 是 运行 。 此时所有节点都在线,并且存在 2 个不同的模式(dse4.5 上有 9 个节点,dse4.8.9 上有 1 个节点)。 在这种情况下,TRUNCATE 会起作用吗?

案例二: 我的一个节点已完全升级到 DSE 4.8,这使我的集群处于部分升级状态,所有节点都在线,存在 2 个模式(DSE 4.5 上有 9 个节点,DSE 4.8 上有 1 个节点)。

TRUNCATE 在这种情况下会起作用吗?

求推荐。

谢谢!

不建议在升级期间发出 TRUNCATE 命令,这是概述的限制之一 here

引用 link:

Do not enable new features.

Do not run nodetool repair.

Do not issue these types of CQL queries during a rolling restart: DDL and TRUNCATE.

During upgrades, the nodes on different versions might show a schema disagreement.

Failure to upgrade SSTables when required results in a significant performance impact and increased disk usage. Upgrading is not complete until the SSTables are upgraded.

首先在所有节点上升级二进制文件应该是一种惯例,这样我们在整个集群中就有一个模式。 在所有节点完成 运行ning "upgradesstables".

之前避免使用 TRUNCATE

markc给出的评论也要注意:

不启用新功能。

不要运行nodetool修复。

在滚​​动重启期间不要发出这些类型的 CQL 查询:DDL 和 TRUNCATE。

在升级过程中,不同版本的节点可能会显示架构不一致。

未能在需要时升级 SSTables 会导致显着的性能影响和磁盘使用量增加。在升级 SSTable 之前,升级未完成。