【发布时间】:2012-02-11 11:15:00
【问题描述】:
我在删除 Cassandra 中的行键时遇到问题。每当我删除 Row Key 时,该 RowKey 包含的所有列都会被删除,但 RowKey 本身不会被删除。谁能告诉我如何删除一个 rowkey,一旦它被插入到 columnfamily 中。
我期待通过 thrift 客户端做到这一点。
【问题讨论】:
我在删除 Cassandra 中的行键时遇到问题。每当我删除 Row Key 时,该 RowKey 包含的所有列都会被删除,但 RowKey 本身不会被删除。谁能告诉我如何删除一个 rowkey,一旦它被插入到 columnfamily 中。
我期待通过 thrift 客户端做到这一点。
【问题讨论】:
这是 Cassandra 中分布式删除工作方式的副作用。来自Cassandra wiki page on distributed deletes:
[A] 删除操作不能立即清除所有被删除数据的痕迹:如果我们这样做了,并且副本没有收到删除操作,当它再次可用时,它将处理收到的副本删除已错过写入更新,并修复它们!因此,Cassandra 并没有在删除时清除数据,而是将其替换为一个称为墓碑的特殊值。然后可以将 tombstone 传播到错过初始删除请求的副本。
还可以查看常见问题解答中的这个问题:Why do deleted keys show up during range scans?
【讨论】: