【发布时间】:2018-10-16 23:05:29
【问题描述】:
是否可以从 Cassandra 表中删除整个分区,而无需写入墓碑并等待 gc_grace_period 并运行压缩?
【问题讨论】:
标签: cassandra datastax cassandra-3.0 datastax-startup
是否可以从 Cassandra 表中删除整个分区,而无需写入墓碑并等待 gc_grace_period 并运行压缩?
【问题讨论】:
标签: cassandra datastax cassandra-3.0 datastax-startup
从未在 gc_grace_period 之前。但这是一件好事,你可以控制它。如果您知道墓碑的用途,那么您可以理解在分布式删除中,如果一个节点死了一段时间,您可能会得到删除的数据,或者会产生一些一致性问题。对于单个节点,可以设置gc_grace_period为0。但是对于多节点,这个值应该大于0。对于某些表的频繁删除,如果你担心生成很多tombstones,你可以为这些表设置小的gc_grace但是考虑节点故障情况并根据需要进行处理。
一些链接:
Deletes Without Tombstones or TTLs
About deletes in Cassandra
编辑答案
范围墓碑是一种基于分区键的有效删除方式。这会为整行创建单个 tombstone,从而减少范围读取读取的 tombstone 数量以及需要通过压缩合并或清理的 tombstone 数量。
来自@mando222 & 我分享的链接。请阅读给定的链接。你会得到答案的。
有不同类型的删除。整个分区删除(或单行删除)、单列删除、范围删除。如果您删除单个行或分区而不提及列,则将只为该行或整个分区创建一个墓碑。 他们没有为每个单元格设置单独的墓碑,而是有一个范围的墓碑。
如果您执行范围删除,则位于范围中的某些行也会为该范围创建一个墓碑。
更少的墓碑产生更快的读取速度,更快,更便宜 压实。
【讨论】: