问题描述
比方说,我的表经过建模,因此我只删除整个分区,而不是其中的某些行。也就是说,Cassandra将永远不会创建行逻辑删除,而只会创建分区逻辑删除。
现在,据我所知,Cassandra中的压缩过程将每个SSTables中的分区条目带入内存,因为它必须合并多个SSTables中给定分区的所有条目。我可以想象这个过程对于具有很多已删除行(行逻辑删除)的分区来说会比较昂贵,因为该进程必须遍历该分区的每个SSTable的所有行,并查看哪些标记为要删除并合并行到一个SSTable中。在本例中,这与处理分区逻辑删除相反,这意味着整个分区都将被删除。
我是否正确假设压缩过程“不必担心”处理逻辑删除的分区?据我了解,合并SSTables时,如果遇到一个已被标记为逻辑删除的分区,它将简单地移至下一个分区,并且该分区所在的所有SSTables都会发生这种情况。最终,压缩结束删除所有这些旧的SSTable。
我的理解正确吗?与删除(大量)行相比,删除整个分区是否会更便宜?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)