summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2022-06-04 17:34:57 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2022-06-04 17:34:57 +0200
commita8a3d95be5db1a8a7d5a17e2eb8e233417b1d8c7 (patch)
treec91bd47eaf319a54af76ef74b1a1283621fc2676 /conf
parent9e60b500c76945ccdea94d3a67e7acfde5e3f969 (diff)
Nest: Improve GC strategy for rtables
Use timer (configurable as 'gc period') to schedule routing table GC/pruning to ensure that prune is done on time but not too often. Randomize GC timers to avoid concentration of GC events from different tables in one loop cycle. Fix a bug that caused minimum inter-GC interval be 5 us instead of 5 s. Make default 'gc period' adaptive based on number of routing tables, from 10 s for small setups to 600 s for large ones. In marge multi-table RS setup, the patch improved time of flushing a downed peer from 20-30 min to <2 min and removed 40s latencies.
Diffstat (limited to 'conf')
-rw-r--r--conf/conf.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/conf/conf.c b/conf/conf.c
index a2b01667..025c040e 100644
--- a/conf/conf.c
+++ b/conf/conf.c
@@ -140,6 +140,7 @@ config_parse(struct config *c)
protos_preconfig(c);
rt_preconfig(c);
cf_parse();
+ rt_postconfig(c);
if (EMPTY_LIST(c->protos))
cf_error("No protocol is specified in the config file");