【发布时间】:2021-10-19 07:22:30
【问题描述】:
我有这个下表:
CREATE TABLE example
(
id text,
users map<text,text>,
lastvisit int,
...
PRIMARY KEY (userid)
);
有时我会更新列或地图条目,例如:
1) update example set users = users - {'JOE'} where id = 'id';
2) update example set users = users + {'JOE':'meta'} where id = 'id';
3) update example set lastvisit = 100 where id = 'id';
我需要知道每个查询如何以墓碑和压缩的方式处理旧数据。
以下是我研究/建议的,但特别是在我缺乏信息的地图上。
-
通过仅为映射中的条目生成墓碑来删除 key = 'JOE' 处的映射条目。压缩时,该值将被删除。
-
将键值对插入映射。旧条目在压缩时被删除,因为有一个新条目。
-
列条目被更新,就像在 2 中一样,旧值在压缩中被删除
每种情况下的问题是,是重新写入整行还是只写入具有较新时间戳的更新值?
【问题讨论】:
标签: cassandra cassandra-3.0 cql3 tombstone