当我删除Cassandra中的行时,我只删除列而不删除行键

当我删除Cassandra中的行时,我只删除列而不删除行键,cassandra,nosql,delete-row,Cassandra,Nosql,Delete Row,如果使用remove(key)删除Cassandra db中ColumnFamily中的每个键,那么如果使用get\u range\u slices,行仍然存在,但没有列。如何删除整行? 因为get_range_slice说,“将此谓词应用于给定的行范围”,这意味着,如果谓词结果为空,则必须为该行键包含一个空结果。即使没有执行删除操作,执行这样一个返回部分或所有键的空列列表的查询也是完全有效的 我刚刚遇到了同样的问题,我发现: 这已在0.7中修复 (). 和后端口到0.6.3 这也是相关的: 我

如果使用
remove(key)
删除Cassandra db中ColumnFamily中的每个键,那么如果使用
get\u range\u slices
,行仍然存在,但没有列。如何删除整行?

因为get_range_slice说,“将此谓词应用于给定的行范围”,这意味着,如果谓词结果为空,则必须为该行键包含一个空结果。即使没有执行删除操作,执行这样一个返回部分或所有键的空列列表的查询也是完全有效的


我刚刚遇到了同样的问题,我发现:

这已在0.7中修复 (). 和后端口到0.6.3

这也是相关的:

我用cassandra 0.63进行了测试,问题仍然是一样的。我不认为bug修复是为了去除删除的行ID。看


更多信息。

Cassandra按预期使用分布式删除

因此,删除操作不能仅仅删除所有的数据痕迹 立即被删除:如果我们删除了,并且副本没有收到 删除操作,当它再次可用时,它将处理 确实收到删除的复制副本已丢失写入 更新,并修复它们!因此,与其删除数据, Cassandra将其替换为一个称为墓碑的特殊值。这个 然后,墓碑可以传播到丢失初始数据的副本 删除请求


谢谢,没有解决方案可以避免这种情况?根据,墓碑每秒钟清理一次,默认情况下为10天。GCGraceSeconds应该是使故障节点恢复并运行所需的最长时间。对于单个实例,您可以将GCGraceSeconds设置为0,然后墓碑将自动删除。-1这尚未“修复”,票证刚刚“解决”,解决方案为“[可能稍后再做”。根据@Schildmeijer的回答,这是预期的行为,而不是bug。同意!请参阅下面的回答。