所以我对node-ttl和node-purge-ttl应该如何工作感到有点困惑。我在database.ini文件中设置了它们。node-ttl设置为35m,node-purge-ttl设置为5m。从puppetdb文档中,我得出结论,使用这些设置,节点将在35分钟不活动后过期,例如,节点已死亡,并且35分钟内未与主节点签入,5分钟后,节点应从数据库中清除。
但这似乎并没有发生。即使在被终止超过40分钟后,节点仍然在那里,看起来仍然活着和快乐。然而,在db根据gc间隔执行压缩之后,该节点似乎消失了。
我对这个功能的理解正确吗?如果我是,我做错了什么?我使用的是最新版本的puppetdb和puppetserver。
以下是在我的database.ini文件中设置的参数:
# How often (in minutes) to compact the database
# gc-interval = 60
gc-interval = 60
# Number of seconds before any SQL query is considered 'slow'; offending
# queries will not be interrupted, but will be logged at the WARN log level.
log-slow-statements = 10
syntax_pgs = true
node-ttl = 35m
node-purge-ttl = 5m
report-ttl = 14d
conn-max-age = 60
conn-keep-alive = 45
conn-lifetime = 0发布于 2016-07-28 07:35:51
TTL设置会改变gc进程的行为。当gc运行时(每隔gc间隔分钟),它会参考这些选项,以确定要停用的节点和要直接删除的节点。
gc过程本身就是清理数据的工具,这就是为什么在下次gc发生之前您看不到任何更改的原因。Quoth the docs:“每隔gc间隔分钟将检查节点是否过时”。
所以基本上,你没有做错任何事情!只是数据库清理不是立即发生的,而是定期进行的。
https://stackoverflow.com/questions/38616788
复制相似问题