卡桑德拉版本: 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'};发布于 2014-09-25 18:10:11
这个问题在1.2.19中得到了修正,还有其他一些墓碑问题,听起来就像你正在面对的问题:https://issues.apache.org/jira/browse/CASSANDRA-7810
如果你愿意尝试,你会考虑升级吗?对于Cassandra1.2.x有很多与删除数据相关的更改/修复:https://github.com/apache/cassandra/blob/cassandra-1.2/CHANGES.txt
发布于 2014-09-25 14:56:35
RDBMS说,在Cassandra中删除与RDBMS完全不同。我强烈建议阅读Datastax文档:关于删除。
https://stackoverflow.com/questions/26040374
复制相似问题