Aerospike namespace的default-ttl覆盖及客户端ttl设置限制咨询
Aerospike 客户端TTL与Namespace default-ttl的使用限制说明
客户端设置的TTL并非完全不受Namespace配置约束,和default-ttl的关联规则如下:
default-ttl的核心作用是Namespace的默认兜底TTL,仅当客户端写入记录没有指定TTL时才会生效,它本身不是记录TTL的上限。- 写入时主动指定记录TTL的场景下,是否可以设置得比
default-ttl高,由Namespace的max-ttl配置决定:- 若Namespace的
max-ttl为默认值0(未设置上限):你可以将TTL设置为任意正整数,完全允许高于default-ttl,不会被服务端限制。 - 若Namespace配置了非0的
max-ttl:你设置的TTL如果超过max-ttl会被自动截断为max-ttl的值,只要设置的TTL低于max-ttl,哪怕高于default-ttl也可以正常生效。
- 若Namespace的
- 还有两个特殊TTL值的规则不受
default-ttl影响:- 设为
0:代表记录永久有效,只要Namespace没有强制配置max-ttl就可以生效。 - 设为
-1(部分客户端定义为DEFAULT_TTL常量):代表强制继承当前Namespace的default-ttl作为这条记录的TTL。
- 设为
补充说明:3.10版本之前的Aerospike存在历史兼容性问题,若Namespace开启了nsup(过期数据回收线程),客户端设置高于
default-ttl的TTL可能出现异常过期的情况,该问题在后续版本已经修复。
内容的提问来源于stack exchange,提问作者KANARAM BHARI
相关产品推荐
相关产品推荐

