From a86c0ac7c55f05a8b67ce5a690e3ad23f55d37f5 Mon Sep 17 00:00:00 2001 From: Calvin Kim Date: Wed, 17 Jul 2024 14:40:55 +0900 Subject: [PATCH] blockchain: increase periodic flush interval The periodic flush intervals were set to 5 minutes previously which on average means that the node will flush every block when the node is caught up to the tip. This put an overhead on the node after the node is caught up beyond the last checkpointed block as it'll start calling the periodic flush function. So while the node is still performing ibd, it'll be flushing every 5 minutes, hurting performance. Changing this value to 48 hours doesn't hurt the node too much as the average worst case would be 288 blocks to reindex which is quick. For a decent computer, 48 hours should be enough time to sync all the blocks beyond the last checkpointed block as well. If not, 1-2 flushes don't hurt as much as flushing every 5 minutes. --- blockchain/utxocache.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/blockchain/utxocache.go b/blockchain/utxocache.go index 550d8c5602..074a2783ee 100644 --- a/blockchain/utxocache.go +++ b/blockchain/utxocache.go @@ -183,7 +183,11 @@ const ( // when the flush mode FlushPeriodic is used. This is used when the initial // block download is complete and it's useful to flush periodically in case // of unforeseen shutdowns. - utxoFlushPeriodicInterval = time.Minute * 5 + // + // We'll be flushing every 2 days. Re-indexing 288 blocks is pretty + // quick and it won't put too much overhead on the flushes while the + // node is caught up. + utxoFlushPeriodicInterval = time.Hour * 48 ) // FlushMode is used to indicate the different urgency types for a flush.