From 981946c95047a798e42d44829f4c3d8d6a45cdda Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Wed, 8 Feb 2023 08:05:30 -0500 Subject: [PATCH] NetDB: Don't explore if we have enough RIs --- .../i2p/router/networkdb/kademlia/StartExplorersJob.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/StartExplorersJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/StartExplorersJob.java index 696d86b74b..738078c130 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/StartExplorersJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/StartExplorersJob.java @@ -17,6 +17,7 @@ import net.i2p.router.JobImpl; import net.i2p.router.Router; import net.i2p.router.RouterContext; import net.i2p.util.Log; +import net.i2p.util.SystemVersion; /** * Fire off search jobs for random keys from the explore pool, up to MAX_PER_RUN @@ -48,6 +49,9 @@ class StartExplorersJob extends JobImpl { private static final int LOW_ROUTERS = 2 * MIN_ROUTERS; /** explore slowly if we have more than this many routers */ private static final int MAX_ROUTERS = 2 * LOW_ROUTERS; + // must be lower than LIMIT_ROUTERS in HandleFloodfillDatabaseStoreMessageJob + // because exploration does not register a reply job + private static final int LIMIT_ROUTERS = SystemVersion.isSlow() ? 800 : 3000; private static final int MIN_FFS = 50; static final int LOW_FFS = 2 * MIN_FFS; @@ -63,13 +67,13 @@ class StartExplorersJob extends JobImpl { public String getName() { return "Start Explorers Job"; } public void runJob() { + int count = _facade.getDataStore().size(); if (! (_facade.floodfillEnabled() || + count > LIMIT_ROUTERS || getContext().jobQueue().getMaxLag() > MAX_LAG || getContext().throttle().getMessageDelay() > MAX_MSG_DELAY || - // message delay limit also? getContext().router().gracefulShutdownInProgress())) { int num = MAX_PER_RUN; - int count = _facade.getDataStore().size(); if (count < MIN_ROUTERS) num *= 15; // at less than 3x MIN_RESEED, explore extremely aggressively else if (count < LOW_ROUTERS) -- GitLab