我需要将 GCGraceSeconds 设置为 0,因为我只有一个节点,但我找不到可以为此设置值的位置。是否可以从 astyanax 设置或在某些设置文件中设置?
问问题
2174 次
2 回答
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()
);
于 2012-06-24T14:24:29.207 回答
2
这是在conf/cassandra.yaml(Cassandra 配置文件)中完成的
0.7 之前的版本:conf/storage-conf.xml
请记住:“将此设置为一个足够大的值,以便您确信删除标记将在经过这么多秒时传播到所有副本,即使面对硬件故障也是如此。默认值是十天。 ”
默认值为:“ 864000 ”秒或10天。
于 2012-06-23T13:30:53.290 回答