From 37beb532454b010eae904c5aca26848d8717c241 Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Wed, 1 Feb 2023 17:10:04 -0500 Subject: [PATCH] Profiles: Remove 30m tunnel history rates to save a large amount of space. 30m rates were almost always within 10% of the 60m rates, so we clearly don't need both. Keep 60m because that's what we publish in the netdb. Adjust rate weighting in CapacityCalculator accordingly. --- .../web/helpers/ProfileOrganizerRenderer.java | 4 ++-- .../router/peermanager/CapacityCalculator.java | 18 +++--------------- .../i2p/router/peermanager/TunnelHistory.java | 2 +- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java index 5a88d645cf..73d71d4697 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java @@ -192,12 +192,12 @@ class ProfileOrganizerRenderer { ok = false; } RateAverages ra = RateAverages.getTemp(); - Rate failed = prof.getTunnelHistory().getFailedRate().getRate(30*60*1000); + Rate failed = prof.getTunnelHistory().getFailedRate().getRate(60*60*1000); long fails = failed.computeAverages(ra, false).getTotalEventCount(); if (ok && fails == 0) { buf.append(_t("OK")); } else if (fails > 0) { - Rate accepted = prof.getTunnelCreateResponseTime().getRate(30*60*1000); + Rate accepted = prof.getTunnelCreateResponseTime().getRate(60*60*1000); long total = fails + accepted.computeAverages(ra, false).getTotalEventCount(); if (total / fails <= 10) // hide if < 10% buf.append(' ').append(fails).append('/').append(total).append(' ').append(_t("Test Fails")); diff --git a/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java b/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java index ec56b58ce3..8a168e6dae 100644 --- a/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java +++ b/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java @@ -49,7 +49,6 @@ class CapacityCalculator { if (capacity10m <= 0) { capacity = 0; } else { - double capacity30m = estimateCapacity(acceptStat, rejectStat, failedStat, 30*60*1000); double capacity60m = estimateCapacity(acceptStat, rejectStat, failedStat, 60*60*1000); double capacity1d = estimateCapacity(acceptStat, rejectStat, failedStat, 24*60*60*1000); @@ -62,10 +61,9 @@ class CapacityCalculator { capacity10m /= 4; } - capacity = capacity10m * periodWeight(10*60*1000) + - capacity30m * periodWeight(30*60*1000) + - capacity60m * periodWeight(60*60*1000) + - capacity1d * periodWeight(24*60*60*1000); + capacity = capacity10m * 0.4 + + capacity60m * 0.5 + + capacity1d * 0.1; } } @@ -182,14 +180,4 @@ class CapacityCalculator { return 0.0d; } } - - private static double periodWeight(int period) { - switch (period) { - case 10*60*1000: return .4; - case 30*60*1000: return .3; - case 60*60*1000: return .2; - case 24*60*60*1000: return .1; - default: throw new IllegalArgumentException("undefined period passed, period [" + period + "]???"); - } - } } diff --git a/router/java/src/net/i2p/router/peermanager/TunnelHistory.java b/router/java/src/net/i2p/router/peermanager/TunnelHistory.java index 5f44c45c9b..0bd66d3ac1 100644 --- a/router/java/src/net/i2p/router/peermanager/TunnelHistory.java +++ b/router/java/src/net/i2p/router/peermanager/TunnelHistory.java @@ -29,7 +29,7 @@ public class TunnelHistory { private final RateStat _rejectRate; private final RateStat _failRate; private final String _statGroup; - static final long[] RATES = new long[] { 10*60*1000l, 30*60*1000l, 60*60*1000l, 24*60*60*1000l }; + static final long[] RATES = new long[] { 10*60*1000l, 60*60*1000l, 24*60*60*1000l }; /** probabalistic tunnel rejection due to a flood of requests - infrequent */ public static final int TUNNEL_REJECT_PROBABALISTIC_REJECT = 10; -- GitLab