java - 如何使用 astyanax 在 Cassandra 中设置 GCGraceSeconds?

标签 java cassandra astyanax

我需要将 GCGraceSeconds 设置为 0,因为我只有一个节点,但我找不到可以为此设置值的位置。是否可以从 astyanax 设置或在某些设置文件中设置?

最佳答案

在较新版本的 cassandra 中,您实际上在每个列族的基础上设置 gc_grace_seconds 作为架构的一部分。据我所知,Astyanax 目前不支持设置该属性。 ColumnFamilyDefinition类中没有对应的方法。

https://github.com/Netflix/astyanax/blob/master/src/main/java/com/netflix/astyanax/ddl/ColumnFamilyDefinition.java

如果您愿意,可以使用 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()
);

关于java - 如何使用 astyanax 在 Cassandra 中设置 GCGraceSeconds?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11169022/

相关文章:

java - spring messaging 将 json 字符串转换为映射

cassandra - 检查cassandra中的一行TTL?

visual-c++ - Cassandra SSTables : how to read in c++?

java - 关于卢塞恩的问题

java - EC2 上跨 jgroups channel 丢失数据包的问题

machine-learning - Apache Spark (MLLib) 用于实时分析

cassandra - 当单个种子节点关闭时,Astyanax 请求在 4 节点集群中失败

java - astyanax 是否仅支持本地节点的自动发现模式?

cassandra - org.apache.thrift.transport.TTransportException : Cannot read. 远程端已关闭

java - spring mvc拦截器如何获取方法执行流程