diff --git a/history.txt b/history.txt index 5a5d55007..9f89b5b8e 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2012-10-20 zzz + * Transport: Back out CoDel for SSU PeerState and NTCP + 2012-10-19 zzz * UDP: Fix peer test NPE (ticket # 748) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 421ff4f63..098e16d49 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 16; + public final static long BUILD = 17; /** for example "-test" */ public final static String EXTRA = "-rc"; diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java index eb84d6c90..90a130dae 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java @@ -27,6 +27,7 @@ import net.i2p.router.Router; import net.i2p.router.RouterContext; import net.i2p.router.transport.FIFOBandwidthLimiter; import net.i2p.router.util.CoDelPriorityBlockingQueue; +import net.i2p.router.util.PriBlockingQueue; import net.i2p.util.ConcurrentHashSet; import net.i2p.util.HexDump; import net.i2p.util.Log; @@ -86,7 +87,8 @@ class NTCPConnection implements FIFOBandwidthLimiter.CompleteListener { /** * pending unprepared OutNetMessage instances */ - private final CoDelPriorityBlockingQueue _outbound; + //private final CoDelPriorityBlockingQueue _outbound; + private final PriBlockingQueue _outbound; /** * current prepared OutNetMessage, or null - synchronize on _outbound to modify * FIXME why do we need this??? @@ -155,7 +157,8 @@ class NTCPConnection implements FIFOBandwidthLimiter.CompleteListener { _readBufs = new ConcurrentLinkedQueue(); _writeBufs = new ConcurrentLinkedQueue(); _bwRequests = new ConcurrentHashSet(2); - _outbound = new CoDelPriorityBlockingQueue(ctx, "NTCP-Connection", 32); + //_outbound = new CoDelPriorityBlockingQueue(ctx, "NTCP-Connection", 32); + _outbound = new PriBlockingQueue(32); _isInbound = true; _decryptBlockBuf = new byte[BLOCK_SIZE]; _curReadState = new ReadState(); @@ -179,7 +182,8 @@ class NTCPConnection implements FIFOBandwidthLimiter.CompleteListener { _readBufs = new ConcurrentLinkedQueue(); _writeBufs = new ConcurrentLinkedQueue(); _bwRequests = new ConcurrentHashSet(8); - _outbound = new CoDelPriorityBlockingQueue(ctx, "NTCP-Connection", 32); + //_outbound = new CoDelPriorityBlockingQueue(ctx, "NTCP-Connection", 32); + _outbound = new PriBlockingQueue(32); _isInbound = false; _decryptBlockBuf = new byte[BLOCK_SIZE]; _curReadState = new ReadState(); @@ -297,7 +301,8 @@ class NTCPConnection implements FIFOBandwidthLimiter.CompleteListener { } List pending = new ArrayList(); - _outbound.drainAllTo(pending); + //_outbound.drainAllTo(pending); + _outbound.drainTo(pending); for (OutNetMessage msg : pending) { Object buf = msg.releasePreparationBuffer(); if (buf != null) diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState.java b/router/java/src/net/i2p/router/transport/udp/PeerState.java index 964e79332..99e11a4fa 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerState.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerState.java @@ -17,6 +17,7 @@ import net.i2p.data.SessionKey; import net.i2p.router.OutNetMessage; import net.i2p.router.RouterContext; import net.i2p.router.util.CoDelPriorityBlockingQueue; +import net.i2p.router.util.PriBlockingQueue; import net.i2p.util.Log; import net.i2p.util.ConcurrentHashSet; @@ -209,7 +210,8 @@ class PeerState { * Priority queue of messages that have not yet been sent. * They are taken from here and put in _outboundMessages. */ - private final CoDelPriorityBlockingQueue _outboundQueue; + //private final CoDelPriorityBlockingQueue _outboundQueue; + private final PriBlockingQueue _outboundQueue; /** which outbound message is currently being retransmitted */ private OutboundMessageState _retransmitter; @@ -323,7 +325,8 @@ class PeerState { _rttDeviation = _rtt; _inboundMessages = new HashMap(8); _outboundMessages = new ArrayList(32); - _outboundQueue = new CoDelPriorityBlockingQueue(ctx, "UDP-PeerState", 32); + //_outboundQueue = new CoDelPriorityBlockingQueue(ctx, "UDP-PeerState", 32); + _outboundQueue = new PriBlockingQueue(32); // all createRateStat() moved to EstablishmentManager _remoteIP = remoteIP; _remotePeer = remotePeer; @@ -1397,7 +1400,8 @@ class PeerState { tempList = new ArrayList(_outboundMessages); _outboundMessages.clear(); } - _outboundQueue.drainAllTo(tempList); + //_outboundQueue.drainAllTo(tempList); + _outboundQueue.drainTo(tempList); for (OutboundMessageState oms : tempList) { _transport.failed(oms, false); }