database - ScyllaDB 上的主要压实

标签 database cassandra scylla tombstone

简单查询:- 我用 gc_grace_seconds 10 天删除了 Scylla 上的数据。 Scylla 创建了墓碑并等待 gc_grace_seconds 过期。

现在,我在删除后的第 2 天运行了主要压缩(gc_grace_seconds 到期还剩 8 天)。

1) 压缩会做什么?它将考虑所有墓碑并清除哪些在 2 天前删除或未删除?

2) 我应该在运行主要压缩之前更改 gc_grace_seconds=0 吗?

请帮忙

提前致谢。

最佳答案

1) 至少在 Cassandra 中(不知道 scylla)它不会在 gc_grace_seconds 过去之前清除墓碑。这就是宽限秒的用途 - 告诉数据库至少将墓碑保留那么长时间。

2) 如果你真的想清除它们,你可以。使用 0 gc grace 也意味着提示不会存储在 Cassandra 中,因此可能需要设置为 1 除非您同意新写入数据的持久性降低。还需要确保修复已完成,因为您的数据已写入,或者墓碑清除的数据可能(尽管不太可能)被复活。如果设置 only_purge_repaired_tombstones 如果数据没有被修复(我建议设置它的值(value))

关于database - ScyllaDB 上的主要压实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54911798/

相关文章:

java - 我可以在没有 Web 服务的情况下直接从 Android 查询 MySQL 数据库吗?

java - JPA:保留具有 OneToMany 关系的 2 个实体的问题

pyspark - 如果任一集群永远未修复,Cassandra 或 ScyllaDB 是否可以在使用 PySpark 读取时提供不完整的数据?

sql - (未成功)测试Oracle SQL中索引的效果

sql - 有没有不使用主键的好情况?

java - Datastax Cassandra Native Java Driver - 使用 Query Builder 有性能优势吗?

scala - Spark-cassandra-connector:toArray 不起作用

cassandra - 如何配置 cassandra 以监听真实 IP 地址而不是 0.0.0.0 上的 jmx 端口?

cassandra - 如何查看ScyllaDB安装版本?

Cassandra 3.11 SSTableLoader 机制