我的 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/