2016-07-27 60 views
0

所以我對node-ttl和node-purge-ttl應該如何工作有些困惑。我讓他們在database.ini文件中設置。 node-ttl設置爲35m,node-purge-ttl設置爲5m。從puppetdb文檔中,我得出這樣的結論:在這些設置下,節點將在35分鐘不活動狀態後過期,例如,節點已經死了,並且沒有在35分鐘內用master檢入,5分鐘之後應該從db中清除節點。puppetdb node-ttl不按預期工作

但這似乎並沒有發生。即使終止40多分鐘後,該節點仍然在那裏尋找活着和快樂。但是,在db根據gc-interval執行壓縮後,該節點似乎消失了。

我是否正確理解此功能?如果我是,我做錯了什麼?我正在使用最新版本的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 

回答

1

的TTL設置改變GC進程的行爲。當gc運行時(每隔gc-interval分鐘),它會查詢這些選項以確定要停用哪些節點以及哪些節點要直接刪除。

gc進程本身就是清理數據的東西,所以這就是爲什麼直到下一次gc發生時纔看到任何更改。 Quoth the docs:「每隔gc-interval分鐘都會檢查節點是否過時」。

所以基本上,你沒有做錯什麼!這只是數據庫清理不會立即發生,而是定期安排。

+0

謝謝你的回答。所以基本上,如果我希望節點消失的更快,我可能需要設置gc-interval更頻繁地發生...... –