在cassandra中,在压缩过程中,分区墓碑是否比行/单元墓碑本身更便宜?

23c0lvtd  于 2021-06-09  发布在  Cassandra
关注(0)|答案(1)|浏览(411)

假设我的表是建模的,这样我只删除整个分区,而不是其中的一些行。也就是说,Cassandra永远不会创建行墓碑,而只是划分墓碑。
现在,据我所知,cassandra中的压缩过程将每个sstable中的分区条目带到内存中,因为它必须跨多个sstable合并给定分区的所有条目。我可以想象,对于有大量已删除行(行逻辑删除)的分区,此过程的成本更高,因为此过程必须遍历该分区的每个sstable中的所有行,并查看哪些行被标记为要删除,然后将这些行合并到单个sstable中。这与处理分区逻辑删除相反,在我的例子中,这意味着要删除整个分区。
我是否正确地假设压缩过程“不必太担心”处理逻辑删除的分区?据我所知,在合并sstables时,如果它遇到一个被标记为逻辑删除的分区,它将简单地移动到下一个分区,并且该分区所在的所有sstables都会发生这种情况。最后,压缩以删除所有这些旧的sstable结束。
我的理解正确吗?与删除(大量)行相比,删除整个分区的成本会降低吗?

cvxl0en2

cvxl0en21#

是的,您的理解是正确的,分区墓碑比行墓碑更适合于压缩过程。它也有助于阅读流。当你有分区墓碑而不是行墓碑时,阅读速度很快。你可以参考lastpickle博客和博客中的评论。

相关问题