【问题标题】:Cassandra upgradeSSTable - Does it reads and writes entire data?Cassandra upgradeSSTable - 它是否读取和写入整个数据?
【发布时间】:2016-06-15 07:10:54
【问题描述】:

我们有一个运行 2.0.17 的 18 节点 C* 集群(每个节点大约 600 GB 数据)。我们通过增加 18 个节点来扩展它,因此我们需要进行 nodetool 清理以清除不再由旧节点拥有的任何冗余数据(即,数据已从旧节点移动到集群中的新节点) .但是,稍后我们还需要将 C* 版本升级到 2.1.13,由于这是主要的点发布升级,我们需要在表上运行 upgradesstables 以使其与 2.1 格式兼容。 所以我想知道 upgradesstables 是如何工作的。它是要读取整个数据,然后以新格式重新编写它,还是它的扩展性较小。如果它要重写整个事情,那么它是否有可能也会摆脱该节点不再拥有的任何外部数据?如果是这种情况,那么我们不必先运行 nodetool cleanup 并且可以升级到 2.1.13 并运行 upgradesstables 来为我们做所有事情。否则我们必须在升级到 2.1.13 之前运行 nodetool cleanup。由于每个节点上有大量数据,如果可能的话,我不想遍历整个数据集两次。

【问题讨论】:

    标签: cassandra datastax nosql


    【解决方案1】:

    它将读取和重写整个 sstable(仅在需要时)。基本上它是一个单一的稳定压缩。在阅读时编写新的 sstable,并在完成后删除原始版本。

    【讨论】:

    • 我的主要问题是,这是否意味着它会删除它不再拥有的任何外国数据?
    • 你需要进行清理,普通的压缩(基本上是升级表)不会删除它不拥有的东西,所以你需要两者。您也不能只进行清理,因为清理操作将跳过不包含节点范围之外的数据的 sstable。
    • 好的。感谢您的澄清!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    相关资源
    最近更新 更多