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

时间:2018-05-07 07:32:27

标签: cassandra datastax cassandra-3.0 datastax-startup

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

1 个答案:

答案 0 :(得分:0)

从未在gc_grace_period之前。但是你可以控制它是一件好事。如果你知道墓碑的目的,那么你可以理解,在分布式删除中,如果一个节点已经死了一段时间,你可能会删除数据或者会产生一些一致性问题。对于单个节点,您可以将gc_grace_period设置为0.但对于多节点,此值应大于0.对于某些表中的频繁删除,如果您担心许多逻辑删除生成,则可以为这些表设置小gc_grace但考虑节点故障情况并根据需要进行处理。

部分链接:

Deletes Without Tombstones or TTLs
About deletes in Cassandra

编辑回答

  

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

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

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

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

  

较少的墓碑产生更快的读取速度,更快,更便宜   compactions。