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);
+            }
         }
     }
 }


Reply via email to