Cassandra:分区删除后重新插入行会导致更多的墓碑
我有一个Cassandra数据库,我注意到了以下行为:Cassandra:分区删除后重新插入行会导致更多的墓碑,cassandra,tombstone,Cassandra,Tombstone,我有一个Cassandra数据库,我注意到了以下行为: 在分区中插入一组行。大多数列都是原始数据类型,而不是集合或复合数据类型 删除分区(导致一个墓碑) 将相同的行重新插入分区(结果是每行每列出现逻辑删除) 由于墓碑太多,后续select查询失败 步骤3中的墓碑创建行为。这让我感到惊讶和意外。不应该在步骤2中删除分区范围的墓碑。防止旧数据死灰复燃?在步骤3中。为什么卡桑德拉要插入每列墓碑 如果可能的话,请提供一个指向此行为文档的指针(最后手段:Cassandra源代码),或者我看到墓碑乘法是由于
插入:在C++代码中,具有一致性LoalAlqQualU:
TTL至少是未来一年 删除分区:在Python代码中,具有一致性所有:重新插入:与上面的插入相同,但数据1和数据2的值可能不同。显示用于插入的代码和数据。。。
CREATE TABLE keyspace.transactions (
r_b: int,
r_sn: int,
r_a: int,
r_d: int,
r_s: int,
t_s: int,
data_1: int,
data_2: text,
...,
PRIMARY KEY ((r_b, r_sn, r_a, r_d, r_s), t_s))
WITH CLUSTERING ORDER BY (t_s ASC)
AND read_repair_chance = 0.0
AND dclocal_read_repair_chance = 0.1
AND gc_grace_seconds = 864000
AND bloom_filter_fp_chance = 0.01
AND caching = { 'keys' : 'ALL', 'rows_per_partition' : 'NONE' }
AND comment = ''
AND compaction = { 'class' : 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold' : 32, 'min_threshold' : 2 }
AND compression = { 'chunk_length_in_kb' : 64, 'class' : 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND default_time_to_live = 0
AND speculative_retry = '99PERCENTILE'
AND min_index_interval = 128
AND max_index_interval = 2048
AND crc_check_chance = 1.0
AND cdc = false
AND memtable_flush_period_in_ms = 0;
INSERT INTO transactions (
r_b, r_sn, r_a, r_d, r_s, t_s, data_1, data_2, ... )
VALUES (?, ?, ?, ...) USING TTL ?
DELETE FROM transactions
WHERE r_b = ?
AND r_sn = ?
AND r_a = ?
AND r_d = ?
AND r_s = ?;