在 Scylla 数据库中从 SizeTiered 切换到级别压缩策略需要多少磁盘 space?

how much disk space is required to switch from SizeTiered to level compaction strategy in Scylla db?

我有一个 20 节点的 scylla 数据库集群,每个节点的磁盘使用率为 70% space。我想从 Size tiered strategy 切换到 leveled compaction strategy。我可以用剩下这么多磁盘 space 来做吗?最多需要多少磁盘 space?

通常使用 Size Tiered Compaction Strategy 或 Leveled Compaction Strategy,您希望保留大约 50% 的磁盘 space 空闲。

我们有一个 Scylla Enterprise 功能 Incremental Compaction Strategy,它更适合 运行 70% 的磁盘利用率。

更改压缩策略,re-writing您当前所有的表需要的磁盘空间 space 是您目前使用的空间的两倍。 (你目前使用率的 140%。)所以看起来你可能需要暂时扩展你的集群,以便 运行 正确压缩。

据我了解,首先需要时间来均匀地重新平衡节点。然后你应该 运行 使用现有策略进行完全压缩,然后更改为新策略。然后,如果您通过压缩节省了空间,则可以停用任何不需要的节点。

如果您有更具体的问题,我会邀请您join our Slack直接询问我们的社区成员。

如前所述,您没有足够的磁盘 space 来切换压缩策略。我可以想到 2 种或 3 种方法来解决这个问题。

  1. 添加更多磁盘space - 如果您处于云环境中,增加数据磁盘和扩展文件系统可能不会成为问题。
  2. 添加更多节点 - 但是,这需要一段时间,因为数据必须流式传输到所有新节点,然后您需要 运行 nodetool cleanup 在集群上回收未使用的 space.
  3. 一次更改一个 table 的压缩策略。从适合您 30% space 的小 table 开始。这也将花费很长时间,并且如果您选择错误的 table 到 ALTER.
  4. ,您可能会 运行 退出 space