Cassandra upgradeSSTable - 它是否读取和写入整个数据?

时间:2016-03-02 12:21:04

标签: cassandra datastax nosql

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

1 个答案:

答案 0 :(得分:1)

它将读取并重写整个sstable(仅在需要时)。基本上它是单一的sstable压实。写新sstable作为阅读它,一旦完成删除原始。