【问题标题】:Can we use 'NullCompactionStrategy'?我们可以使用“NullCompactionStrategy”吗?
【发布时间】:2019-12-10 17:04:44
【问题描述】:

我们知道,我们在 apache cassandra 和 ScyllaDB 及其用例中有不同类型的压缩策略。我们可以使用 'NullCompactionStrategy' 吗?如果是,对 Scylla/Cas​​sandra 集群有什么影响?

【问题讨论】:

    标签: cassandra nosql datastax scylla


    【解决方案1】:

    使用 NullCompactionStrategy 将有效地禁用表上的压缩。如果您正在做一些数据迁移,或者您要在短时间内写入大量数据但不建议长时间使用,这在短期内是可以的。

    Cassandra 写入被刷新到不可变的 SSTables。所以每次内存刷新到磁盘都会创建一个新的 SSTable 文件。如果禁用压缩,服务器将继续创建越来越多的文件。因此,如果您更新列的值,它可能会出现在多个文件中。现在您的读取将不得不通过许多文件来处理请求。

    压缩过程将 SSTable 合并在一起。如果有更新或删除,则该字段的最新值通过压缩保留并写入新的 SSTable,而旧版本将被丢弃。这意味着读取将发生在较少数量的文件上。

    禁用压缩会减少写入期间的 CPU 使用率,但也意味着稍后读取速度会变慢。因此,要么保持启用压缩,要么在完成迁移后启用它。

    【讨论】:

    • 谢谢。是在 cassandra 中禁用压缩的唯一方法吗?我们可以在我们的产品服务器中遵循这个过程吗?
    • 你应该使用 nodetool disableautocompaction 来禁用压缩。 docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/…
    • 好的...但是在 scylla 中呢?
    • scyllaDB 基本上是 Cassandra 的 C++ 实现,性能更好但功能更少。压缩在 scyllaDB 中的工作方式应该与在 Cassandra 中相同。
    • @LetsNoSQL Scylla 不支持nodetool disableautocompaction 命令,因此可以选择使用NullCompactionStrategy。为什么要禁用压缩?强烈不推荐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2020-03-21
    • 2011-08-21
    • 2013-09-08
    • 2023-03-14
    • 2021-09-15
    相关资源
    最近更新 更多