3

     在 cassandra 中,当如此多版本的列分散在不同的 SSTable 中时,为了更快的查询检索,非常需要压缩。当同一列上的更新序列或删除完成时,压缩是最好的策略。但是 Compaction 是一个重资源利用过程。但在我的应用程序中,我只使用 Cassandra 插入记录并查看它们。但是密钥空间的大小可能会以 GB 为单位增长。它会保存超过数百万条记录。对我来说,插入很重要。我不会更新列或删除列。我的简单删除将在整个密钥空间上进行。现在我的疑问是我可以禁用压缩吗?禁用压缩会降低查询性能吗?..

4

1 回答 1

5

1)这取决于您的数据模型。

2) Cassandra 的复杂部分是读取性能,而压缩提高了它。

3)即使您不打算删除或更新同一列,但如果您打算将新列插入同一行,那么禁用压缩肯定会影响您的读取性能,因为它会增加磁盘查找次数。

4)除了压缩之外,还有墓碑收集的工作,但您的删除是整个键空间删除,所以这不是问题。

5)压缩将行片段合并在一起,删除过期的墓碑并重建索引,在您的情况下,这些都不需要。所以理论上你可以关闭压缩。但是,如果布隆过滤器误报会影响您的读取性能,那么没有更多的 sstable 和大数据。在此处查看布隆过滤器:Cassandra 架构概述

于 2012-12-24T11:39:45.940 回答