From e3c222b5c1d51d7d6f805b56a6a8b63e5fef3d85 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sat, 10 Apr 2010 15:25:57 +0000 Subject: [PATCH] Lower per-torrent conn limits for large pieces --- .../java/src/org/klomp/snark/PeerCoordinator.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java index 9976d44d94..67ac95e55a 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java @@ -240,15 +240,19 @@ public class PeerCoordinator implements PeerListener } } - /** reduce max if huge pieces to keep from ooming */ + /** + * Reduce max if huge pieces to keep from ooming + * Todo: should we only reduce when leeching? + * @return 512K: 16; 1M: 11; 2M: 8 + */ private int getMaxConnections() { int size = metainfo.getPieceLength(0); int max = _util.getMaxConnections(); - if (size <= 1024*1024) + if (size <= 512*1024) return max; - if (size <= 2*1024*1024) - return (max + 1) / 2; - return (max + 3) / 4; + if (size <= 1024*1024) + return (max + max + 2) / 3; + return (max + 1) / 2; } public boolean halted() { return halted; } -- GitLab