【问题标题】:Cassandra table doesn't have tombstones for deleted rowsCassandra 表没有删除行的墓碑
【发布时间】:2015-06-04 16:23:47
【问题描述】:

我有一个简单的 emp 表:

CREATE TABLE emp (
  empid int,
  deptid int,
  first_name text,
  last_name text,
  PRIMARY KEY (empid, deptid)
) WITH ...

我插入了 10 条记录。然后删除1条记录并检查表的json。就像下面这样:

...
{"key": "0000000a","columns": [["1003:","",1427796440909000], ["1003:first_name","fn10",1427796440909000], ["1003:last_name","ln10",1427796440909000]]},
{"key": "00000001","metadata": {"deletionInfo": {"markedForDeleteAt":1427797012545000,"localDeletionTime":1427797012}},"columns": []},
{"key": "00000008","columns": [["1001:","",1427796419431000], ["1001:first_name","fn8",1427796419431000], ["1001:last_name","ln8",1427796419431000]]},
...

因此,1 条记录被正确标记为删除。 接下来我从表中删除了所有记录,select * from empcqlsh 提示符上没有返回任何内容。

但是,当我检查表的 json 时,我得到的输出与删除 1 条记录后的输出相同。这是一个开发环境,整个数据位于 1 sstable

为什么其他已删除记录的墓碑没有反映在表的 json 输出中?

【问题讨论】:

    标签: cassandra cassandra-2.0


    【解决方案1】:

    它在与 sstables 合并的 memtable 中。在 sstable2json 之前执行 nodetool flush 以查看内存表和提交日志中当前的内容。

    【讨论】:

    • “删除所有”,取决于它是如何完成的,可能是一个范围墓碑
    猜你喜欢
    • 2017-10-03
    • 2019-02-16
    • 2014-10-16
    • 2018-10-16
    • 2023-03-08
    • 2019-07-09
    • 1970-01-01
    • 2017-02-09
    • 2017-02-09
    相关资源
    最近更新 更多