Author: toad
Date: 2008-03-13 23:13:11 +0000 (Thu, 13 Mar 2008)
New Revision: 18523

Modified:
   trunk/freenet/src/freenet/node/CHKInsertHandler.java
   trunk/freenet/src/freenet/node/NodeStats.java
   trunk/freenet/src/freenet/node/RequestSender.java
Log:
Track total and successful receives. Log it.

Modified: trunk/freenet/src/freenet/node/CHKInsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertHandler.java        2008-03-13 
23:07:17 UTC (rev 18522)
+++ trunk/freenet/src/freenet/node/CHKInsertHandler.java        2008-03-13 
23:13:11 UTC (rev 18523)
@@ -409,6 +409,7 @@
                        receiveCompleted = true;
                        CHKInsertHandler.this.notifyAll();
                }
+               node.nodeStats.successfulBlockReceive();
             } catch (RetrievalException e) {
                synchronized(CHKInsertHandler.this) {
                        receiveCompleted = true;
@@ -430,6 +431,7 @@
                                        Logger.normal(this, "Failed to retrieve 
(disconnect): "+e, e);
                                else
                                        Logger.error(this, "Failed to retrieve 
("+e.getReason()+"/"+RetrievalException.getErrString(e.getReason())+"): "+e, e);
+               node.nodeStats.failedBlockReceive();
                 return;
             } catch (Throwable t) {
                 Logger.error(this, "Caught "+t, t);

Modified: trunk/freenet/src/freenet/node/NodeStats.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStats.java       2008-03-13 23:07:17 UTC 
(rev 18522)
+++ trunk/freenet/src/freenet/node/NodeStats.java       2008-03-13 23:13:11 UTC 
(rev 18523)
@@ -1602,5 +1602,19 @@
                long uptime = node.getUptime();
                return ((double)getSentOverhead() * 1000.0) / ((double) uptime);
        }
+
+       private long totalReceives;
+       private long successfulReceives;

+       public synchronized void successfulBlockReceive() {
+               totalReceives++;
+               successfulReceives++;
+               if(logMINOR) Logger.minor(this, "Successful receives: 
"+successfulReceives+"/"+totalReceives+" = "+((double)successfulReceives) / 
((double)totalReceives));
+       }
+
+       public synchronized void failedBlockReceive() {
+               totalReceives++;
+               if(logMINOR) Logger.minor(this, "Successful receives: 
"+successfulReceives+"/"+totalReceives+" = "+((double)successfulReceives) / 
((double)totalReceives));
+       }
+       
 }

Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java   2008-03-13 23:07:17 UTC 
(rev 18522)
+++ trunk/freenet/src/freenet/node/RequestSender.java   2008-03-13 23:13:11 UTC 
(rev 18523)
@@ -279,14 +279,16 @@
                                                return;
                                        }
                                        finish(SUCCESS, pn, true);
+                                       node.nodeStats.successfulBlockReceive();
                                        return;
                                } catch (RetrievalException e) {
                                                        if 
(e.getReason()==RetrievalException.SENDER_DISCONNECTED)
                                                                
Logger.normal(this, "Transfer failed (disconnect): "+e, e);
                                                        else
-                                                               
Logger.error(this, "Transfer failed 
("+e.getReason()+"/"+RetrievalException.getErrString(e.getReason())+"): "+e, e);
+                                                               
Logger.error(this, "Transfer for offer failed 
("+e.getReason()+"/"+RetrievalException.getErrString(e.getReason())+"): "+e+" 
from "+pn, e);
                                        finish(GET_OFFER_TRANSFER_FAILED, pn, 
true);
                                offers.deleteLastOffer();
+                                       node.nodeStats.failedBlockReceive();
                                        return;
                                }
                        } finally {
@@ -720,7 +722,7 @@
                                                        if 
(e.getReason()==RetrievalException.SENDER_DISCONNECTED)
                                                                
Logger.normal(this, "Transfer failed (disconnect): "+e, e);
                                                        else
-                                                               
Logger.error(this, "Transfer failed 
("+e.getReason()+"/"+RetrievalException.getErrString(e.getReason())+"): "+e, e);
+                                                               
Logger.error(this, "Transfer failed 
("+e.getReason()+"/"+RetrievalException.getErrString(e.getReason())+"): "+e+" 
from "+next, e);
                                                        
next.localRejectedOverload("TransferFailedRequest"+e.getReason());
                                        finish(TRANSFER_FAILED, next, false);
                                        node.failureTable.onFinalFailure(key, 
next, htl, FailureTable.REJECT_TIME, source);


Reply via email to