从没有墓碑和ttl的Cassandra中删除整个分区?

raj*_*jat 6 cassandra datastax cassandra-3.0 datastax-startup

是否可以从Cassandra表中删除整个分区,而无需编写逻辑删除并等待gc_grace_period并运行压缩?

Cha*_*ity 3

从来没有在 gc_grace_period 之前。但你能控制它是件好事。如果你知道墓碑的用途,那么你就可以理解,在分布式删除中,如果一个节点死了一段时间,你可能会得到删除的数据,或者会产生一些一致性问题。对于单节点,可以将gc_grace_period设置为0。但是对于多节点,该值应大于0。对于某些表的频繁删除,如果担心生成大量墓碑,可以将这些表的gc_grace设置得较小,但考虑节点故障场景并根据需要进行处理。

一些链接:

没有逻辑删除或 TTL 的删除
关于 Cassandra 中的删除

编辑答案

范围墓碑是一种基于分区键的有效删除方式。这会为整行创建一个墓碑,从而减少范围读取读取的墓碑数量以及需要通过压缩合并或清理的墓碑数量。

来自我分享的链接@mando222。请阅读给定的链接。你会得到答案。

删除有不同的类型。整个分区删除(或单行删除)、单列删除、范围删除。如果删除单行或分区而不提及列,则只会为该行或整个分区创建一个逻辑删除。他们没有为每个单元格设置单独的墓碑,而是有一个单一范围的墓碑。

如果执行范围删除,驻留在范围中的某些行还会为该范围创建单个逻辑删除。

更少的墓碑会产生更快的读取和更快、更便宜的压缩。