aerospike - 在 Aerospike 中查找 TTL 为 0 的记录

标签 aerospike ttl

我的 aerospike 集群达到了 50% 的磁盘使用率并且记录开始被驱逐。
我怀疑我每天不会向集群写入那么多记录。每条记录我们设置了 90 天的 TTL,命名空间的默认 TTL 是 30 天。

我担心的是,我假设我们有 0 TTL 的记录,这些记录没有被驱逐甚至没有被使用。
如何审计和查找 0 TTL 的记录(对象数量),应立即将其更改为默认 TTL。

谢谢。

最佳答案

几件事:

Aerospike 日志会告诉您有多少记录没有过期,请在以下行中查找“0 v-t”记录的数量(在我的示例中,这里是 0):
{ns-name} Records: 37118670, 0 0-vt, 0(377102877) expired, 185677(145304222) evicted, 0(0) set deletes, 0(0) set evicted. Evict ttls: 34560,38880,0.118. Waits: 0,0,8743. Total time: 45467 ms
这将很快确定该命名空间的非过期记录的“比例”(因为您旁边有记录总数)。

为了完全识别那些记录并可能设置到期,您必须扫描记录并更新它们......java中有示例代码可以扫描 this repo 上的集合(或命名空间)。不过,可能还有其他更优雅的解决方案,但它们仍然需要编写一些代码。

关于aerospike - 在 Aerospike 中查找 TTL 为 0 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39292961/

相关文章:

Aerospike 启动失败

Aerospike - 存储*少量*大值(value)

Aerospike:如何从 aerospike 服务器查找哪些客户端正在访问它?

azure - 是否可以在 ServiceBus 死信队列消息上设置 TTL?

session - Tomcat, session 管理员。 TTL 为负的 session 是什么意思?

mongoose - 更改单个文档的 ttl

java - Aerospike : Does Java Client support mulitple filters on secondary indexes?

node.js - 无法从 Aerospike 中删除记录

c# - 如何获取DNS中的TTL(Time To Live)?

mongodb - 什么时候应该在 MongoDB 中设置 TTL 索引?