From: Alec Chen Date: Mon, 15 May 2023 23:51:05 +0000 (-0500) Subject: Prune and persist RGS network graph after initial sync X-Git-Tag: v0.0.116-alpha1~34^2~1 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=ad8ab4d722d0f9b4311d790548f1b3ccce2ca9aa;p=rust-lightning Prune and persist RGS network graph after initial sync Previously we would wait 60 seconds after startup, however for RGS we prune/persist after its initial sync since 60 seconds is likely too long. --- diff --git a/lightning-background-processor/src/lib.rs b/lightning-background-processor/src/lib.rs index 3227b63fd..406c56b25 100644 --- a/lightning-background-processor/src/lib.rs +++ b/lightning-background-processor/src/lib.rs @@ -351,9 +351,15 @@ macro_rules! define_run_body { // Note that we want to run a graph prune once not long after startup before // falling back to our usual hourly prunes. This avoids short-lived clients never // pruning their network graph. We run once 60 seconds after startup before - // continuing our normal cadence. + // continuing our normal cadence. For RGS, since 60 seconds is likely too long, + // we prune after an initial sync completes. let prune_timer = if have_pruned { NETWORK_PRUNE_TIMER } else { FIRST_NETWORK_PRUNE_TIMER }; - if $timer_elapsed(&mut last_prune_call, prune_timer) { + let prune_timer_elapsed = $timer_elapsed(&mut last_prune_call, prune_timer); + let should_prune = match $gossip_sync { + GossipSync::Rapid(_) => !have_pruned || prune_timer_elapsed, + _ => prune_timer_elapsed, + }; + if should_prune { // The network graph must not be pruned while rapid sync completion is pending if let Some(network_graph) = $gossip_sync.prunable_network_graph() { #[cfg(feature = "std")] {