From 5e814bea6785e2dca7ae2c10fc35eaf33ef63200 Mon Sep 17 00:00:00 2001 From: SeekingFor Date: Tue, 13 Aug 2013 04:05:24 +0000 Subject: [PATCH 1/2] always keep backlog size >= MAX_REQUESTS. Before this commit: if getInFlightSize() == 0 LCWoT will just fetch 1 * (own identities) update(s) every 30 seconds --- src/main/java/plugins/WebOfTrust/RequestScheduler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/plugins/WebOfTrust/RequestScheduler.java b/src/main/java/plugins/WebOfTrust/RequestScheduler.java index a91b059..f44a5e2 100644 --- a/src/main/java/plugins/WebOfTrust/RequestScheduler.java +++ b/src/main/java/plugins/WebOfTrust/RequestScheduler.java @@ -200,7 +200,7 @@ private void cleanup() { } private void maintenance() { - if (getInFlightSize() <= MAX_MAINTENANCE_REQUESTS) + while(MAX_REQUESTS > getBacklogSize()) { for(final Node own_identity : nodeIndex.get(IVertex.OWN_IDENTITY, true)) { From 34d9c9cabcf66a3bb4d998911d274e87b049170c Mon Sep 17 00:00:00 2001 From: SeekingFor Date: Tue, 13 Aug 2013 04:11:47 +0000 Subject: [PATCH 2/2] use higher limit for QUICKLY_CLEAR_BIG_BACKLOG_THRESHOLD to keep using the 30 second sleep if idle --- src/main/java/plugins/WebOfTrust/RequestScheduler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/plugins/WebOfTrust/RequestScheduler.java b/src/main/java/plugins/WebOfTrust/RequestScheduler.java index f44a5e2..e809363 100644 --- a/src/main/java/plugins/WebOfTrust/RequestScheduler.java +++ b/src/main/java/plugins/WebOfTrust/RequestScheduler.java @@ -30,7 +30,11 @@ public class RequestScheduler extends Thread { public static final int MAX_REQUESTS = 10; - public static final int QUICKLY_CLEAR_BIG_BACKLOG_THRESHOLD = 5; + // FIXME as maintenance() adds one requests for each own + // ^ identity QUICKLY_CLEAR_BIG_BACKLOG_THRESHOLD should be dynamically + // ^ calculated like MAX_REQUESTS + sum(own identities) as in idle + // ^ state the maximum value of backlog would be MAX_REQUESTS - 1 + sum(own identities) + public static final int QUICKLY_CLEAR_BIG_BACKLOG_THRESHOLD = MAX_REQUESTS + 5; private static final int MAX_MAINTENANCE_REQUESTS = 1; private static final double PROBABILITY_OF_FETCHING_DIRECTLY_TRUSTED_IDENTITY = 0.7;