Author: toad
Date: 2009-01-16 00:03:52 +0000 (Fri, 16 Jan 2009)
New Revision: 25073
Modified:
trunk/freenet/src/freenet/node/RequestSender.java
Log:
Statistics
Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java 2009-01-16 00:03:34 UTC
(rev 25072)
+++ trunk/freenet/src/freenet/node/RequestSender.java 2009-01-16 00:03:52 UTC
(rev 25073)
@@ -297,6 +297,7 @@
// A certain
number of these are normal, it's better to track them through statistics than
call attention to them in the logs.
Logger.normal(this, "Transfer for offer failed
("+e.getReason()+"/"+RetrievalException.getErrString(e.getReason())+"): "+e+"
from "+pn, e);
finish(GET_OFFER_TRANSFER_FAILED, pn,
true);
+ // Backoff here anyway - the node
really ought to have it!
if(!br.tookTooLong())
pn.transferFailed("RequestSenderGetOfferedTransferFailed");
offers.deleteLastOffer();
@@ -1110,7 +1111,7 @@
if(prb != null)
current |= WAIT_TRANSFERRING_DATA;
- if(status != NOT_FINISHED)
+ if(status != NOT_FINISHED || sentAbortDownstreamTransfers)
current |= WAIT_FINISHED;
if(current != mask) return current;
@@ -1131,6 +1132,8 @@
private static MedianMeanRunningAverage avgTimeTaken = new
MedianMeanRunningAverage();
+ private static MedianMeanRunningAverage avgTimeTakenTurtle = new
MedianMeanRunningAverage();
+
private static MedianMeanRunningAverage avgTimeTakenTransfer = new
MedianMeanRunningAverage();
private long transferTime;
@@ -1138,9 +1141,12 @@
private void finish(int code, PeerNode next, boolean fromOfferedKey) {
if(logMINOR) Logger.minor(this, "finish("+code+ ')');
+ boolean turtle;
+
synchronized(this) {
status = code;
notifyAll();
+ turtle = turtleMode;
if(status == SUCCESS)
successFrom = next;
}
@@ -1149,11 +1155,19 @@
if(key instanceof NodeCHK && transferTime > 0 && logMINOR) {
long timeTaken = System.currentTimeMillis() - startTime;
synchronized(avgTimeTaken) {
- avgTimeTaken.report(timeTaken);
- avgTimeTakenTransfer.report(transferTime);
- if(logMINOR) Logger.minor(this, "Successful CHK
request took "+timeTaken+" average "+avgTimeTaken);
- if(logMINOR) Logger.minor(this, "Successful CHK
request transfer "+transferTime+" average "+avgTimeTakenTransfer);
- if(logMINOR) Logger.minor(this, "Search phase:
median "+(avgTimeTaken.currentValue() -
avgTimeTakenTransfer.currentValue())+"ms, mean "+(avgTimeTaken.meanValue() -
avgTimeTakenTransfer.meanValue())+"ms");
+ if(turtle)
+ avgTimeTakenTurtle.report(timeTaken);
+ else {
+ avgTimeTaken.report(timeTaken);
+ avgTimeTakenTransfer.report(transferTime);
+ }
+ if(turtle) {
+ if(logMINOR) Logger.minor(this,
"Successful CHK turtle request took "+timeTaken+" average "+avgTimeTakenTurtle);
+ } else {
+ if(logMINOR) Logger.minor(this,
"Successful CHK request took "+timeTaken+" average "+avgTimeTaken);
+ if(logMINOR) Logger.minor(this, "Successful CHK
request transfer "+transferTime+" average "+avgTimeTakenTransfer);
+ if(logMINOR) Logger.minor(this, "Search phase:
median "+(avgTimeTaken.currentValue() -
avgTimeTakenTransfer.currentValue())+"ms, mean "+(avgTimeTaken.meanValue() -
avgTimeTakenTransfer.meanValue())+"ms");
+ }
}
}
if(next != null) {
@@ -1464,6 +1478,7 @@
abortDownstreamTransfersReason = reason;
abortDownstreamTransfersDesc = desc;
sentAbortDownstreamTransfers = true;
+ notifyAll();
for (Listener l : listeners) {
try {
l.onAbortDownstreamTransfers(reason,
desc);
@@ -1510,4 +1525,8 @@
node.failureTable.onFinalFailure(key, transferringFrom(), htl,
FailureTable.REJECT_TIME, source);
}
+ public boolean abortedDownstreamTransfers() {
+ return sentAbortDownstreamTransfers;
+ }
+
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs