Author: toad
Date: 2008-02-07 14:12:35 +0000 (Thu, 07 Feb 2008)
New Revision: 17658
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
Log:
Simulator improvements, mostly logging
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-02-07 14:12:07 UTC (rev
17657)
+++ trunk/freenet/src/freenet/node/Node.java 2008-02-07 14:12:35 UTC (rev
17658)
@@ -3120,4 +3120,20 @@
else
return fetch((NodeSSK)key, true) != null;
}
+
+ public int getTotalRunningUIDs() {
+ return runningUIDs.size();
+ }
+
+ public int getTotalRunningUIDsAlt() {
+ return this.runningCHKGetUIDs.size() +
this.runningCHKPutUIDs.size() + this.runningSSKGetUIDs.size() +
+ this.runningSSKGetUIDs.size() +
this.runningSSKOfferReplyUIDs.size() + this.runningCHKOfferReplyUIDs.size();
+ }
+
+ /**
+ * Warning: does not announce change in location!
+ */
+ public void setLocation(double loc) {
+ lm.setLocation(loc);
+ }
}
Modified:
trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
2008-02-07 14:12:07 UTC (rev 17657)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
2008-02-07 14:12:35 UTC (rev 17658)
@@ -34,8 +34,8 @@
*/
public class RealNodeRequestInsertTest {
- static final int NUMBER_OF_NODES = 10;
- static final short MAX_HTL = 5;
+ static final int NUMBER_OF_NODES = 50;
+ static final short MAX_HTL = 7;
//static final int NUMBER_OF_NODES = 50;
//static final short MAX_HTL = 10;
@@ -58,6 +58,9 @@
nodes[i] =
NodeStarter.createTestNode(5001+i, wd, false, true, true,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
+ // Make the network immediately routable.
+ // Comment out if we want to include a routing/swapping test as
well.
+ nodes[i].setLocation((1.0 * i) / NUMBER_OF_NODES);
}
SimpleFieldSet refs[] = new SimpleFieldSet[NUMBER_OF_NODES];
for(int i=0;i<NUMBER_OF_NODES;i++)
@@ -123,6 +126,9 @@
Logger.normal(RealNodeRoutingTest.class, "Swaps rejected (rate
limit): "+LocationManager.swapsRejectedRateLimit);
Logger.normal(RealNodeRoutingTest.class, "Swaps rejected (loop):
"+LocationManager.swapsRejectedLoop);
Logger.normal(RealNodeRoutingTest.class, "Swaps rejected
(recognized ID):" +LocationManager.swapsRejectedRecognizedID);
+ Logger.normal(RealNodeRoutingTest.class, "Swaps failed:"
+LocationManager.noSwaps);
+ Logger.normal(RealNodeRoutingTest.class, "Swaps succeeded:"
+LocationManager.swaps);
+
lastSwaps = newSwaps;
// Do some (routed) test-pings
for(int i=0;i<10;i++) {
@@ -173,7 +179,7 @@
try {
requestNumber++;
try {
- Thread.sleep(5000);
+ Thread.sleep(100);
} catch (InterruptedException e1) {
}
String dataString = baseString + requestNumber;
@@ -222,6 +228,17 @@
Logger.error(RealNodeRequestInsertTest.class,
"Returned invalid data!: "+new String(results));
}
}
+ StringBuffer load = new StringBuffer("Running UIDs for nodes:
");
+ for(int i=0;i<nodes.length;i++) {
+ load.append(i);
+ load.append(':');
+ load.append(nodes[i].getTotalRunningUIDs());
+ load.append(':');
+ load.append(nodes[i].getTotalRunningUIDsAlt());
+ if(i != nodes.length-1)
+ load.append(' ');
+ }
+ System.out.println(load.toString());
} catch (Throwable t) {
Logger.error(RealNodeRequestInsertTest.class, "Caught "+t, t);
}
Modified: trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
2008-02-07 14:12:07 UTC (rev 17657)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
2008-02-07 14:12:35 UTC (rev 17658)
@@ -30,8 +30,8 @@
*/
public class RealNodeRoutingTest {
- static final int NUMBER_OF_NODES = 150;
- static final short MAX_HTL = (short)6;
+ static final int NUMBER_OF_NODES = 50;
+ static final short MAX_HTL = (short)7;
public static void main(String[] args) throws FSParseException,
PeerParseException, InvalidThresholdException, NodeInitException,
ReferenceSignatureVerificationException {
Logger.setupStdoutLogging(Logger.NORMAL,
"freenet.node.CPUAdjustingSwapRequestInterval:minor"
/*"freenet.node.LocationManager:debug,freenet.node.FNPPacketManager:normal,freenet.io.comm.MessageCore:debug"*/);
@@ -97,21 +97,24 @@
// Ignore
}
for(int i=0;i<NUMBER_OF_NODES;i++) {
- Logger.normal(RealNodeRoutingTest.class, "Cycle
"+cycleNumber+" node "+i+": "+nodes[i].getLocation());
+ System.err.println("Cycle "+cycleNumber+" node "+i+":
"+nodes[i].getLocation());
}
int newSwaps = LocationManager.swaps;
int totalStarted = LocationManager.startedSwaps;
int noSwaps = LocationManager.noSwaps;
- Logger.normal(RealNodeRoutingTest.class, "Swaps:
"+(newSwaps-lastSwaps));
- Logger.normal(RealNodeRoutingTest.class, "\nTotal swaps:
Started*2: "+totalStarted*2+", succeeded: "+newSwaps+", last minute failures:
"+noSwaps+
+ System.err.println("Swaps: "+(newSwaps-lastSwaps));
+ System.err.println("\nTotal swaps: Started*2: "+totalStarted*2+",
succeeded: "+newSwaps+", last minute failures: "+noSwaps+
", ratio "+(double)noSwaps/(double)newSwaps+", early
failures: "+((totalStarted*2)-(noSwaps+newSwaps)));
- Logger.normal(RealNodeRoutingTest.class, "This cycle ratio:
"+((double)(noSwaps-lastNoSwaps)) / ((double)(newSwaps - lastSwaps)));
+ System.err.println("This cycle ratio:
"+((double)(noSwaps-lastNoSwaps)) / ((double)(newSwaps - lastSwaps)));
lastNoSwaps = noSwaps;
- Logger.normal(RealNodeRoutingTest.class, "Swaps rejected (already
locked): "+LocationManager.swapsRejectedAlreadyLocked);
- Logger.normal(RealNodeRoutingTest.class, "Swaps rejected (nowhere
to go): "+LocationManager.swapsRejectedNowhereToGo);
- Logger.normal(RealNodeRoutingTest.class, "Swaps rejected (rate
limit): "+LocationManager.swapsRejectedRateLimit);
- Logger.normal(RealNodeRoutingTest.class, "Swaps rejected (loop):
"+LocationManager.swapsRejectedLoop);
- Logger.normal(RealNodeRoutingTest.class, "Swaps rejected
(recognized ID):" +LocationManager.swapsRejectedRecognizedID);
+ System.err.println("Swaps rejected (already locked):
"+LocationManager.swapsRejectedAlreadyLocked);
+ System.err.println("Swaps rejected (nowhere to go):
"+LocationManager.swapsRejectedNowhereToGo);
+ System.err.println("Swaps rejected (rate limit):
"+LocationManager.swapsRejectedRateLimit);
+ System.err.println("Swaps rejected (loop):
"+LocationManager.swapsRejectedLoop);
+ System.err.println("Swaps rejected (recognized ID):"
+LocationManager.swapsRejectedRecognizedID);
+ System.err.println("Swaps failed:" +LocationManager.noSwaps);
+ System.err.println("Swaps succeeded:" +LocationManager.swaps);
+
lastSwaps = newSwaps;
// Do some (routed) test-pings
for(int i=0;i<10;i++) {
@@ -133,18 +136,34 @@
avg.report(0.0);
avg2.report(0.0);
double ratio = (double)successes /
((double)(failures+successes));
- Logger.normal(RealNodeRoutingTest.class, "Routed ping
"+pings+" FAILED from "+randomNode.getDarknetPortNumber()+" to
"+randomNode2.getDarknetPortNumber()+" (long:"+ratio+",
short:"+avg.currentValue()+", vague:"+avg2.currentValue()+ ')');
+ System.err.println("Routed ping "+pings+" FAILED from
"+randomNode.getDarknetPortNumber()+" to "+randomNode2.getDarknetPortNumber()+"
(long:"+ratio+", short:"+avg.currentValue()+", vague:"+avg2.currentValue()+
')');
} else {
successes++;
avg.report(1.0);
avg2.report(1.0);
double ratio = (double)successes /
((double)(failures+successes));
- Logger.normal(RealNodeRoutingTest.class, "Routed ping
"+pings+" success: "+hopsTaken+ ' ' +randomNode.getDarknetPortNumber()+" to
"+randomNode2.getDarknetPortNumber()+" (long:"+ratio+",
short:"+avg.currentValue()+", vague:"+avg2.currentValue()+ ')');
+ System.err.println("Routed ping "+pings+" success:
"+hopsTaken+ ' ' +randomNode.getDarknetPortNumber()+" to
"+randomNode2.getDarknetPortNumber()+" (long:"+ratio+",
short:"+avg.currentValue()+", vague:"+avg2.currentValue()+ ')');
}
} catch (Throwable t) {
Logger.error(RealNodeRoutingTest.class, "Caught "+t, t);
}
}
+ if(pings > 10 && avg.currentValue() > 0.95 && ((double)successes /
((double)(failures+successes)) > 0.95)) {
+ System.err.println();
+ System.err.println("Reached 98% accuracy.");
+ System.err.println();
+ System.err.println("Network size: "+NUMBER_OF_NODES);
+ System.err.println("Maximum HTL: "+MAX_HTL);
+ System.err.println("Total started swaps:
"+LocationManager.startedSwaps);
+ System.err.println("Total rejected swaps (already locked):
"+LocationManager.swapsRejectedAlreadyLocked);
+ System.err.println("Total swaps rejected (nowhere to go):
"+LocationManager.swapsRejectedNowhereToGo);
+ System.err.println("Total swaps rejected (rate limit):
"+LocationManager.swapsRejectedRateLimit);
+ System.err.println("Total swaps rejected (loop):
"+LocationManager.swapsRejectedLoop);
+ System.err.println("Total swaps rejected (recognized ID):"
+LocationManager.swapsRejectedRecognizedID);
+ System.err.println("Total swaps failed:"
+LocationManager.noSwaps);
+ System.err.println("Total swaps succeeded:"
+LocationManager.swaps);
+ System.exit(0);
+ }
}
}
}