Update of /cvsroot/freenet/freenet/src/freenet/node/rt
In directory sc8-pr-cvs1:/tmp/cvs-serv25695/src/freenet/node/rt

Modified Files:
        NGRoutingTable.java StandardNodeEstimator.java 
        StandardNodeEstimatorFactory.java 
Log Message:
6316:
Don't accept a transfer rate unless the file is multi-segment and the time is more 
than 10ms.
Logging.

Index: NGRoutingTable.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/node/rt/NGRoutingTable.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -w -r1.29 -r1.30
--- NGRoutingTable.java 5 Nov 2003 22:36:40 -0000       1.29
+++ NGRoutingTable.java 6 Nov 2003 01:41:16 -0000       1.30
@@ -62,14 +62,26 @@
        }
        
        public void reportRate(double rate) {
-               if(rate > fastestTransferSeen) fastestTransferSeen = rate;
+               if(rate > fastestTransferSeen) {
+                       fastestTransferSeen = rate;
+                       if(Core.logger.shouldLog(Logger.DEBUG, this))
+                               Core.logger.log(this,"New fastest rate seen: "+rate,
+                                               Logger.NORMAL);
+               }
        }
        
        /** Return the fastest transfer rate seen for files over 16k */
        public double getFastestRateSeen() {
+               boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
                if(fastestTransferSeen == 0.0) {
+                       if(logDEBUG)
+                               Core.logger.log(this, "Returning default rate 
"+defaultFastestTransferSeen,
+                                               Logger.DEBUG);
                        return defaultFastestTransferSeen;
                }
+               if(logDEBUG)
+                       Core.logger.log(this, "Returning fastest rate seen: 
"+fastestTransferSeen,
+                                       Logger.DEBUG);
                return fastestTransferSeen;
        }
        

Index: StandardNodeEstimator.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/node/rt/StandardNodeEstimator.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -w -r1.25 -r1.26
--- StandardNodeEstimator.java  5 Nov 2003 00:06:51 -0000       1.25
+++ StandardNodeEstimator.java  6 Nov 2003 01:41:16 -0000       1.26
@@ -286,6 +286,9 @@
        public void transferSucceeded(Key key, long searchTime, int htl,
                                                                  long size, long 
transferTime) {
                boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
+               if(logDEBUG)
+                       Core.logger.log(this, "transferSucceeded("+key+","+searchTime+
+                                       ","+htl+","+size+","+transferTime, 
Logger.DEBUG);
                synchronized(this) {
                        successes++;
                }
@@ -296,9 +299,12 @@
                etSuccessSearch.reportTime(key, searchTime);
                rpSearchFailed.report(0); // the search succeeded
                rpTransferFailed.report(0); // the transfer succeeded
-               if(size > 0 && transferTime > 0) {
-                       etTransferRate.reportTransferRate(key, ((double)size) / 
-                                                                                      
   (double)transferTime);
+               if(size > 16384 /* must be multi-segment */ 
+                               && transferTime > 10 /* sanity check */) {
+                       double rate = ((double)size) / (double)transferTime;
+                       if(logDEBUG) Core.logger.log(this, "Logging transfer rate of 
"+rate+
+                                               " bytes per millisecond", rate > 100 ? 
Logger.NORMAL : Logger.DEBUG);
+                       etTransferRate.reportTransferRate(key, rate);
                } else {
                        Core.logger.log(this, "Not logging transfer rate because 
size="+
                                                        size+", 
transferTime="+transferTime,

Index: StandardNodeEstimatorFactory.java
===================================================================
RCS file: 
/cvsroot/freenet/freenet/src/freenet/node/rt/StandardNodeEstimatorFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -r1.3 -r1.4
--- StandardNodeEstimatorFactory.java   30 Oct 2003 01:34:06 -0000      1.3
+++ StandardNodeEstimatorFactory.java   6 Nov 2003 01:41:16 -0000       1.4
@@ -3,9 +3,11 @@
 
 import java.io.IOException;
 
+import freenet.Core;
 import freenet.Key;
 import freenet.node.NodeReference;
 import freenet.support.DataObjectPending;
+import freenet.support.Logger;
 
 /**
  * Factory interface for StandardNodeEstimators
@@ -40,8 +42,11 @@
                                                                NodeReference ref, 
double rate,
                                                                boolean 
needConnection) {
                // Create completely new NodeEstimator for the identity
-               return new StandardNodeEstimator(ngrt, ref, mem, raf, rtef, null,
+       NodeEstimator ne = new StandardNodeEstimator(ngrt, ref, mem, raf, rtef, null,
                                                                                 rate, 
needConnection);
+       if(Core.logger.shouldLog(Logger.DEBUG, this))
+               Core.logger.log(this, "Created new NodeEstimator from scratch: "+ne, 
Logger.DEBUG);
+       return ne;
     }
     
     public NodeEstimator create(RoutingMemory mem,
@@ -56,8 +61,11 @@
     
     public NodeEstimator create(RoutingMemory mem, NodeReference ref,
                                                                Key k, double rate, 
boolean needConnection) {
-               return new StandardNodeEstimator(ngrt, ref, mem, raf, rtef, k, rate,
+               NodeEstimator ne = new StandardNodeEstimator(ngrt, ref, mem, raf, 
rtef, k, rate,
                                                                                 
needConnection);
+               if(Core.logger.shouldLog(Logger.DEBUG, this))
+                       Core.logger.log(this, "Created new NodeEstimator from scratch: 
"+ne, Logger.DEBUG);
+               return ne;
     }
     
     public TimeEstimator createGlobalTimeEstimator() {

_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to