在Aerospike中查找TTL为0的记录

在Aerospike中查找TTL为0的记录,aerospike,ttl,Aerospike,Ttl,我的aerospike群集达到50%的磁盘使用率,记录开始逐出。 我怀疑我没有每天向集群写入那么多记录。每个记录我们有90天的TTL设置,命名空间的默认TTL是30天 我担心的是,我假设我们有0 TTL的记录,这些记录没有被逐出,甚至没有被使用。 如何审核和查找TTL为0且应立即更改为默认TTL的记录(对象数) 谢谢。您要查找以下日志行: 2016年9月2日15:14:00 GMT:INFO(nsup):(thr_nsup.c:1114){test}记录:3725361,0 0 0-vt,0(0

我的aerospike群集达到50%的磁盘使用率,记录开始逐出。 我怀疑我没有每天向集群写入那么多记录。每个记录我们有90天的TTL设置,命名空间的默认TTL是30天

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


谢谢。

您要查找以下日志行:

2016年9月2日15:14:00 GMT:INFO(nsup):(thr_nsup.c:1114){test}记录:3725361,0 0 0-vt,0(0)过期,0(0)收回,0(0)集删除。逐出ttl:0。等待:0,0,0。总时间:765毫秒

这是命名空间主管报告一个名为“test”的命名空间,它表示有372561条记录,其中0条记录的时间为0-vt或void time

TTL是当前时间与记录的作废时间(将过期时)之间的增量,因此作废时间为0的记录永远不会过期或被逐出。

两件事:

Aerospike日志将告诉您有多少记录没有过期,请在以下行中查找“0 v-t”记录的数量(在我的示例中,这里是0):


{ns name}记录:37118670,0-vt,0(377102877)过期,185677(145304222)被驱逐,
删除0(0)个集合,收回0(0)个集合。逐出TTL:3456038880,0.118。等候时间:0,08743。
总时间:45467毫秒

这将快速降低该命名空间中不可过期记录的“比例”(因为它旁边有记录的总数)


为了完全识别哪些记录是有效的,并且可能设置过期,您必须扫描这些记录并更新它们。。。java中有一个示例代码可以扫描一个集合(或名称空间)。虽然可能还有其他更优雅的解决方案,但它们仍然需要编写一些代码。

您是否正在寻找一个可以实现这一点的脚本?