我们可以使用“NullCompactionStrategy”吗?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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。为什么要禁用压缩?强烈不推荐。

以上是关于我们可以使用“NullCompactionStrategy”吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以使用“NullCompactionStrategy”吗?

我们可以使用我们的开发证书重新签署应用商店构建吗?

反射。使用它我们可以实现啥?

我们可以对非游戏应用使用“请求”吗?

我们可以使用 ionic 框架将视频存储在 sqlite 数据库中吗?如果可以,我们如何存储它?

为什么优先级队列是使用堆实现的,当我们可以更有效地使用向量实现它时