Author: mrogers
Date: 2006-11-17 22:53:35 +0000 (Fri, 17 Nov 2006)
New Revision: 10977
Added:
trunk/apps/load-balancing-sims/phase7/sim/TokenTest.java
Log:
Small-scale test network for quick debugging
Added: trunk/apps/load-balancing-sims/phase7/sim/TokenTest.java
===================================================================
--- trunk/apps/load-balancing-sims/phase7/sim/TokenTest.java 2006-11-17
22:52:53 UTC (rev 10976)
+++ trunk/apps/load-balancing-sims/phase7/sim/TokenTest.java 2006-11-17
22:53:35 UTC (rev 10977)
@@ -0,0 +1,39 @@
+package sim;
+
+class TokenTest
+{
+ public static void main (String[] args)
+ {
+ int NODES = 10; // Number of nodes
+ double SPEED = 15000; // Network speed, bytes per second
+ double LATENCY = 0.1; // Latency of all links in seconds
+
+ Network.reorder = true;
+ Network.lossRate = 0.001;
+
+ // Create the nodes
+ Node[] nodes = new Node[NODES];
+ for (int i = 0; i < NODES; i++)
+ nodes[i] = new Node (1.0 / NODES * i, SPEED, SPEED);
+ // Connect the nodes
+ for (int i = 0; i < NODES; i++) {
+ nodes[i].connectBothWays (nodes[(i+1)%NODES], LATENCY);
+ nodes[i].connectBothWays (nodes[(i+2)%NODES], LATENCY);
+ }
+ // Insert and request ten keys
+ for (int i = 0; i < 600; i += 60) {
+ int key = Node.locationToKey (Math.random());
+ Event.schedule (nodes[0], i + 10,
+ Node.INSERT_CHK, key);
+ Event.schedule (nodes[NODES/2], i + 25,
+ Node.REQUEST_CHK, key);
+ key = Node.locationToKey (Math.random());
+ Event.schedule (nodes[0], i + 40,
+ Node.INSERT_SSK, key);
+ Event.schedule (nodes[NODES/2], i + 55,
+ Node.REQUEST_SSK, key);
+ }
+ // Run the simulation
+ Event.run();
+ }
+}