Cassandra 物化视图显示陈旧数据
Cassandra materialized view shows stale data
我正在试用 Cassandra 3.0 alpha 以了解物化视图的工作原理,并遵循显示的示例 here。
当从基础 table 中删除整个分区时,该示例有效,但是当我删除单个聚集行时,它继续出现在物化视图中。在基础 table 中删除的行不应该也从视图中消失吗?
例如:
CREATE TABLE base (part int, clus int , val int, PRIMARY KEY (part, clus));
CREATE MATERIALIZED VIEW view1 AS SELECT part FROM base WHERE part IS NOT NULL AND clus IS NOT NULL AND val IS NOT NULL PRIMARY KEY (val, part, clus);
INSERT INTO base (part, clus, val) VALUES ( 1, 2, 200 );
INSERT INTO base (part, clus, val) VALUES ( 1, 3, 300 );
SELECT * FROM view1;
val | part | clus
-----+------+------
200 | 1 | 2
300 | 1 | 3
然后我只删除其中一行:
DELETE FROM base WHERE part=1 and clus=3;
现在我期待 val=300 从视图中消失,但它没有:
SELECT * FROM view1;
val | part | clus
-----+------+------
200 | 1 | 2
300 | 1 | 3
接下来,如果我删除整个分区,我之前删除的集群行会留在视图中:
DELETE FROM base WHERE part=1;
SELECT * from base;
clus | part | val
------+------+-----
SELECT * FROM view1;
val | part | clus
-----+------+------
300 | 1 | 3
我猜这是 alpha 版本中的错误,但我想确保这不是预期的行为。我是否应该能够删除单独的集群行并看到它反映在物化视图中?
我正在使用这个版本:
nodetool version
ReleaseVersion: 3.0.0-alpha1-SNAPSHOT
谢谢。
删除和更新都应根据“Cassandra 3.0 materialised views in action”传播到视图。
我正在试用 Cassandra 3.0 alpha 以了解物化视图的工作原理,并遵循显示的示例 here。
当从基础 table 中删除整个分区时,该示例有效,但是当我删除单个聚集行时,它继续出现在物化视图中。在基础 table 中删除的行不应该也从视图中消失吗?
例如:
CREATE TABLE base (part int, clus int , val int, PRIMARY KEY (part, clus));
CREATE MATERIALIZED VIEW view1 AS SELECT part FROM base WHERE part IS NOT NULL AND clus IS NOT NULL AND val IS NOT NULL PRIMARY KEY (val, part, clus);
INSERT INTO base (part, clus, val) VALUES ( 1, 2, 200 );
INSERT INTO base (part, clus, val) VALUES ( 1, 3, 300 );
SELECT * FROM view1;
val | part | clus
-----+------+------
200 | 1 | 2
300 | 1 | 3
然后我只删除其中一行:
DELETE FROM base WHERE part=1 and clus=3;
现在我期待 val=300 从视图中消失,但它没有:
SELECT * FROM view1;
val | part | clus
-----+------+------
200 | 1 | 2
300 | 1 | 3
接下来,如果我删除整个分区,我之前删除的集群行会留在视图中:
DELETE FROM base WHERE part=1;
SELECT * from base;
clus | part | val
------+------+-----
SELECT * FROM view1;
val | part | clus
-----+------+------
300 | 1 | 3
我猜这是 alpha 版本中的错误,但我想确保这不是预期的行为。我是否应该能够删除单独的集群行并看到它反映在物化视图中?
我正在使用这个版本:
nodetool version
ReleaseVersion: 3.0.0-alpha1-SNAPSHOT
谢谢。
删除和更新都应根据“Cassandra 3.0 materialised views in action”传播到视图。