cassandra - 我们可以使用“NullCompactionStrategy”吗?
问题描述
我们知道,我们在 apache cassandra 和 ScyllaDB 及其用例中有不同类型的压缩策略。我们可以使用 'NullCompactionStrategy' 吗?如果是,对 Scylla/Cassandra 集群有什么影响?
解决方案
使用 NullCompactionStrategy 将有效地禁用表上的压缩。如果您正在做一些数据迁移,或者您要在短时间内写入大量数据但不建议长时间使用,这在短期内是可以的。
Cassandra 写入被刷新到不可变的 SSTables。所以每次内存刷新到磁盘都会创建一个新的 SSTable 文件。如果禁用压缩,服务器将继续创建越来越多的文件。因此,如果您更新列的值,它可能会出现在多个文件中。现在您的读取将不得不通过许多文件来处理请求。
压缩过程将 SSTable 合并在一起。如果有更新或删除,则该字段的最新值通过压缩保留并写入新的 SSTable,而旧版本将被丢弃。这意味着读取将发生在较少数量的文件上。
禁用压缩将导致写入期间 CPU 使用率降低,但也意味着稍后读取速度较慢。因此,要么保持启用压缩,要么在完成迁移后启用它。
推荐阅读
- html - 如果页面没有带有分页的行,则隐藏表头(飞碟)
- java - 内容类型 'application/json;charset=UTF-8'
- javascript - 我们可以在 webGL 中使用 HTML 元素制作平面几何吗?
- kendo-ui - 剑道电子表格浏览器兼容性
- python - 将一对列表转换为可能的最小 DataFrame 表示?
- reactjs - 测试 Semantic-UI Dropdown:如何等待它被填充?
- android - Firebase Key 的子数据在应用重启或活动重新打开时被覆盖为一个
- python - 在 tkinter 中获取文本小部件的内容大小
- java - 在 Android Studio 中显示 Vinculum(符号)
- ios - 编辑时 UITableViewCell 的角半径被重置