【问题标题】:In Cassandra, are partition tombstones inherently less expensive compared to row/cell tombstones during compaction?在 Cassandra 中,与压缩期间的行/单元墓碑相比,分区墓碑本质上是否更便宜?
【发布时间】:2020-12-18 23:28:15
【问题描述】:

假设我的表被建模为我只删除整个分区而不是其中的一些行。也就是说,Cassandra 永远不会创建行墓碑,而只会创建分区墓碑。

现在,据我了解,Cassandra 中的压缩过程将每个 SSTable 中的分区条目带入内存,因为它必须跨多个 SSTable 合并给定分区的所有条目。我想这个过程对于有很多已删除行(行墓碑)的分区来说成本更高,因为该过程必须遍历该分区的每个 SSTable 中的所有行,并查看哪些行被标记为删除并合并行到单个 SSTable 中。这与处理分区墓碑相反,在我的情况下,这意味着要删除整个分区。

我是否正确假设压缩过程“不必担心”处理墓碑分区?据我了解,在合并 SSTable 时,如果遇到已标记为墓碑的分区,它将简单地移动到下一个分区,并且该分区所在的所有 SSTable 都会发生这种情况。最终,压缩结束删除所有这些旧的 SSTable。

我的理解正确吗?与删除(大量)行相比,删除整个分区的成本会更低吗?

【问题讨论】:

    标签: cassandra cql


    【解决方案1】:

    是的,您的理解是正确的,分区 tombstone 在压缩过程中比 row tombstone 更好。它还有助于阅读流程。当您有分区墓碑而不是行墓碑时,读取速度很快。可以参考博客中的the lastpickle blog和cmets。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 2017-02-09
      • 2013-07-09
      • 2017-02-09
      • 1970-01-01
      • 2017-10-03
      • 2019-07-09
      • 2017-08-22
      • 2018-11-20
      相关资源
      最近更新 更多