1

我试图升级集群中的 4 个节点。DC1 有节点 N1 和 N2 DC2 有节点 N3 和 N4

应用服务器连接到 N1 和 N2 节点。RF = {DC1: 2, DC: 2} DC2 节点首先升级到 3.0.15。正如预期的那样,DC2 中的数据存在不一致,因为不同 Cassandra 版本之间无法进行数据流(提示)。在 DC1 中首先升级 N2 时,我注意到所有节点之间的数据立即一致,而 N1 仍然是旧版本。这怎么可能

4

2 回答 2

0

如果其中一个节点是较旧的 Cassandra,则并不重要,因为它整体保持同步。这意味着即使其中一个节点在旧版本上,它也会一直与新版本同步。逻辑上相同的数据将出现在所有节点中,但物理上(sstables)会不同。升级期间所有节点之间的数据应保持一致(旧 + 新)。升级完成后,您需要运行 upgradesstables 将旧的 sstables 写入新的 sstables。

于 2022-01-22T04:35:48.197 回答
0

您已声明 RF=2 并且 DC1 中有 2 个节点。所以 N2 拥有 100% 的数据副本。当您将 N2 更新到 3.0.x 时,即使 N1 尚未更新,该节点上的所有数据都将可见。

顺便说一句,如果这是您的最终目标,您可以直接从 2.1 升级到 3.11。

于 2022-01-24T15:57:35.727 回答