Cassandra - 删除的数据仍在那里

时间:2014-09-25 13:51:51

标签: cassandra

Cassandra版本:1.2.6。单节点。

我已删除表中的数据

DELETE FROM mytable WHERE symbol = 'symbol1' AND field = 'field1';

并且以下查询不会返回它:

SELECT symbol, ts, value FROM mytable WHERE symbol IN ('symbol1');

但是,一些不同的,限制性更强的查询仍​​会返回旧的(已删除的)数据:

SELECT symbol, ts, value FROM mytable WHERE symbol IN ('symbol1') AND field='field1' AND ts >= '2013-09-04 00:00:00+0000' AND ts <= '2014-09-25 00:00:00+0000';

数据没有立即重新出现,但仅在大约5-10分钟之后,在该符号/字段的表中添加了几行之后。

我跑了:nodetool repair mykeyspace

但它没有帮助。任何想法如何解决它?

我桌子的架构:

CREATE TABLE mytable (
  symbol text,
  field text,
  ts timestamp,
  value double,
  PRIMARY KEY (symbol, field, ts)
) WITH
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'SnappyCompressor'};

2 个答案:

答案 0 :(得分:5)

这个问题在1.2.19中修复,还有其他一些墓碑问题,听起来就像你正在使用的问题:https://issues.apache.org/jira/browse/CASSANDRA-7810

如果你愿意尝试,你会考虑升级吗?与删除的数据相关的Cassandra 1.2.x有很多变化/修复:https://github.com/apache/cassandra/blob/cassandra-1.2/CHANGES.txt

答案 1 :(得分:2)

在Cassandra中删除与RDBMS完全不同。我强烈建议您阅读Datastax Documentation : About Deletes