我需要将GCGraceSeconds设置为0,因为我只有一个节点,但我找不到可以为此设置值的位置。可以从astyanax设置还是在某些设置文件中设置?
答案 0 :(得分:4)
在更新版本的cassandra中,您实际上是在每个列系列的基础上设置gc_grace_seconds
作为架构的一部分。据我所知,Astyanax目前不支持设置该属性。 ColumnFamilyDefinition
类中没有相应的方法。
如果您愿意,可以使用cassandra-cli工具在任何现有列族上设置属性。
此外,添加对Astyanax的支持似乎不太难。我相信他们会接受拉取请求。
<强>更新强>
Astyanax(暂时)现在支持此设置。见ColumnFamilyDefinition。这可以在astyanax列族创建中设置,如下所示:
OperationResult<SchemaChangeResult> opres = keyspace.createColumnFamily(cf, ImmutableMap.<String, Object> builder()
.put("comparator", "UTF8Type")
.put("key_validation_class", "UTF8Type")
.put("gc_grace_seconds", 60*60*24) // gc grace seconds of one day
.build()
);
答案 1 :(得分:2)
在 conf / cassandra.yaml (Cassandra配置文件)中完成
早期版本0.7: conf / storage-conf.xml
请记住:“将此值设置为足够大的值,您确信删除标记将在经过这么多秒后传播到所有副本,即使面对硬件故障也是如此。默认值是十天。“
默认为:' 864000 '秒,或 10 天。