Author: toad
Date: 2005-11-18 01:25:44 +0000 (Fri, 18 Nov 2005)
New Revision: 7554

Modified:
   trunk/freenet/src/freenet/node/InsertSender.java
   trunk/freenet/src/freenet/node/PeerManager.java
   trunk/freenet/src/freenet/node/PeerNode.java
   trunk/freenet/src/freenet/node/Version.java
Log:
190:
More bugs in the load balancing code.

Modified: trunk/freenet/src/freenet/node/InsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertSender.java    2005-11-18 01:11:36 UTC 
(rev 7553)
+++ trunk/freenet/src/freenet/node/InsertSender.java    2005-11-18 01:25:44 UTC 
(rev 7554)
@@ -316,10 +316,10 @@

         if(status == REJECTED_OVERLOAD) {
                node.getInsertThrottle().requestRejectedOverload();
-               next.rejectedOverload();
+               next.insertRejectedOverload();
         } else if(status == SUCCESS || status == ROUTE_NOT_FOUND) {
                
node.getInsertThrottle().requestCompleted(System.currentTimeMillis() - 
startTime);
-               next.didNotRejectOverload();
+               next.insertDidNotRejectOverload();
         }

         synchronized(this) {

Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java     2005-11-18 01:11:36 UTC 
(rev 7553)
+++ trunk/freenet/src/freenet/node/PeerManager.java     2005-11-18 01:25:44 UTC 
(rev 7554)
@@ -268,7 +268,7 @@
        double pSummaryFailure = p.getPRejectedOverload();
        double denom = 1.0 - pSummaryFailure;
        if(denom == 0.0) denom = 0.000001;
-       return d / denom;
+       return d * denom;
     }

     /**

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2005-11-18 01:11:36 UTC 
(rev 7553)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2005-11-18 01:25:44 UTC 
(rev 7554)
@@ -156,6 +156,11 @@
      */
     private final RunningAverage pRejectOverload;

+    /** The probability of the node rejecting an insert because of
+     * overload, timing out, etc.
+     */
+    private final RunningAverage pInsertRejectOverload;
+    
     /**
      * Create a PeerNode from a SimpleFieldSet containing a
      * node reference for one. This must contain the following
@@ -249,6 +254,7 @@

         // FIXME maybe a simple binary RA would be better?
         pRejectOverload = new SimpleRunningAverage(100, 0.05);
+        pInsertRejectOverload = new SimpleRunningAverage(100, 0.05);
     }

     private void randomizeMaxTimeBetweenPacketSends() {
@@ -839,7 +845,7 @@

     public String getStatus() {
         return 
-               (isConnected ? "CONNECTED   " : "DISCONNECTED") + " " + 
getPeer().toString()+" "+myName+" "+currentLocation.getValue()+" "+getVersion();
+               (isConnected ? "CONNECTED   " : "DISCONNECTED") + " " + 
getPeer().toString()+" "+myName+" "+currentLocation.getValue()+" "+getVersion() 
+ " "+pRejectOverload.currentValue()+" ("+pRejectOverload.countReports()+") "+ 
pInsertRejectOverload.currentValue()+" 
("+pInsertRejectOverload.countReports()+")";
     }

     public String getVersion(){
@@ -935,6 +941,10 @@
                pRejectOverload.report(1.0);
        }

+       public void insertRejectedOverload() {
+               pInsertRejectOverload.report(1.0);
+       }
+       
        /**
         * Record the fact that the node did not reject a request
         * due to overload.
@@ -943,7 +953,15 @@
                pRejectOverload.report(0.0);
        }

+       public void insertDidNotRejectOverload() {
+               pInsertRejectOverload.report(0.0);
+       }
+       
        public double getPRejectedOverload() {
                return pRejectOverload.currentValue();
        }
+       
+       public double getPInsertRejectedOverload() {
+               return pInsertRejectOverload.currentValue();
+       }
 }

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-11-18 01:11:36 UTC (rev 
7553)
+++ trunk/freenet/src/freenet/node/Version.java 2005-11-18 01:25:44 UTC (rev 
7554)
@@ -20,10 +20,10 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       public static final int buildNumber = 189;
+       public static final int buildNumber = 190;

        /** Oldest build of Fred we will talk to */
-       public static final int lastGoodBuild = 189;
+       public static final int lastGoodBuild = 190;

        /** The highest reported build of fred */
        public static int highestSeenBuild = buildNumber;


Reply via email to