Author: zothar
Date: 2006-06-09 13:21:09 +0000 (Fri, 09 Jun 2006)
New Revision: 9095

Modified:
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Limit concurrently running ARK Fetch requests and time ARKFetcher starts in 
couldNotSendHandshake() like we're already doing in sentHandshake().

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2006-06-09 13:04:40 UTC 
(rev 9094)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2006-06-09 13:21:09 UTC 
(rev 9095)
@@ -885,8 +885,18 @@
         }
         // Don't fetch ARKs for peers we have verified (through handshake) to 
be incompatible with us
         if(handshakeCount == MAX_HANDSHAKE_COUNT && 
!(verifiedIncompatibleOlderVersion || verifiedIncompatibleNewerVersion)) {
-               Logger.normal( this, "Starting ARK Fetcher after 
"+handshakeCount+" failed handshakes(2) for "+getPeer()+" with identity 
'"+getIdentityString()+"'");
-               arkFetcher.start();
+               int numARKFetchers = node.getNumARKFetchers();
+               if( numARKFetchers >= 30 ) {  // Limit concurrent ARK Fetch 
Requests to 30 since we UserAlert at 20 disconnected peers anyway
+                               Logger.minor( this, "Not starting ARK Fetcher 
after "+handshakeCount+" failed handshakes for "+getPeer()+" with identity 
'"+getIdentityString()+"' because there are already 30 ARK Fetchers running.");
+               } else {
+                               Logger.normal( this, "Starting ARK Fetcher 
after "+handshakeCount+" failed handshakes for "+getPeer()+" with identity 
'"+getIdentityString()+"'");
+                               long arkFetcherStartTime1 = 
System.currentTimeMillis();
+                               arkFetcher.start();
+                               long arkFetcherStartTime2 = 
System.currentTimeMillis();
+                               if((arkFetcherStartTime2 - 
arkFetcherStartTime1) > 500) {
+                                       Logger.normal(this, 
"arkFetcherStartTime2 is more than half a second after arkFetcherStartTime1 
("+(arkFetcherStartTime2 - arkFetcherStartTime1)+") working on "+myName);
+                               }
+                       }
         }
     }



Reply via email to