Author: mrogers
Date: 2006-11-17 08:29:44 +0000 (Fri, 17 Nov 2006)
New Revision: 10968
Modified:
trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkInsertHandler.java
trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkRequestHandler.java
trunk/apps/load-balancing-sims/phase7/sim/handlers/MessageHandler.java
trunk/apps/load-balancing-sims/phase7/sim/handlers/SskInsertHandler.java
trunk/apps/load-balancing-sims/phase7/sim/handlers/SskRequestHandler.java
Log:
RejectedOverloads can arrive from any peer, due to timeouts (which makes the
protocol kind of difficult to reason about)
Modified:
trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkInsertHandler.java
===================================================================
--- trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkInsertHandler.java
2006-11-17 05:00:47 UTC (rev 10967)
+++ trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkInsertHandler.java
2006-11-17 08:29:44 UTC (rev 10968)
@@ -27,7 +27,9 @@
public void handleMessage (Message m, Peer src)
{
- if (src == prev) {
+ if (m instanceof RejectedOverload)
+ handleOverload ((RejectedOverload) m, src);
+ else if (src == prev) {
if (m instanceof DataInsert)
handleDataInsert ((DataInsert) m);
else if (m instanceof Block)
@@ -39,8 +41,6 @@
handleAccepted ((Accepted) m);
else if (m instanceof RejectedLoop)
handleRejectedLoop ((RejectedLoop) m);
- else if (m instanceof RejectedOverload)
- handleRejectedOverload ((RejectedOverload) m);
else if (m instanceof RouteNotFound)
handleRouteNotFound ((RouteNotFound) m);
else if (m instanceof InsertReply)
Modified:
trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkRequestHandler.java
===================================================================
--- trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkRequestHandler.java
2006-11-17 05:00:47 UTC (rev 10967)
+++ trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkRequestHandler.java
2006-11-17 08:29:44 UTC (rev 10968)
@@ -17,16 +17,14 @@
public void handleMessage (Message m, Peer src)
{
- if (src != next) {
+ if (m instanceof RejectedOverload)
+ handleOverload ((RejectedOverload) m, src);
+ else if (src != next)
node.log ("unexpected source for " + m);
- return;
- }
- if (m instanceof Accepted)
+ else if (m instanceof Accepted)
handleAccepted ((Accepted) m);
else if (m instanceof RejectedLoop)
handleRejectedLoop ((RejectedLoop) m);
- else if (m instanceof RejectedOverload)
- handleRejectedOverload ((RejectedOverload) m);
else if (m instanceof RouteNotFound)
handleRouteNotFound ((RouteNotFound) m);
else if (m instanceof DataNotFound)
Modified: trunk/apps/load-balancing-sims/phase7/sim/handlers/MessageHandler.java
===================================================================
--- trunk/apps/load-balancing-sims/phase7/sim/handlers/MessageHandler.java
2006-11-17 05:00:47 UTC (rev 10967)
+++ trunk/apps/load-balancing-sims/phase7/sim/handlers/MessageHandler.java
2006-11-17 08:29:44 UTC (rev 10968)
@@ -121,14 +121,12 @@
forwardSearch();
}
- protected void handleRejectedOverload (RejectedOverload ro)
+ protected void handleOverload (RejectedOverload ro, Peer src)
{
- if (searchState != SENT) node.log (ro + " out of order");
if (ro.local) {
ro.local = false;
- // Back off and try another peer
- next.localRejectedOverload();
- forwardSearch();
+ src.localRejectedOverload(); // Back off
+ if (src == next) forwardSearch(); // Try another peer
}
if (prev == null) {
// FIXME: throttle
Modified:
trunk/apps/load-balancing-sims/phase7/sim/handlers/SskInsertHandler.java
===================================================================
--- trunk/apps/load-balancing-sims/phase7/sim/handlers/SskInsertHandler.java
2006-11-17 05:00:47 UTC (rev 10967)
+++ trunk/apps/load-balancing-sims/phase7/sim/handlers/SskInsertHandler.java
2006-11-17 08:29:44 UTC (rev 10968)
@@ -47,7 +47,9 @@
public void handleMessage (Message m, Peer src)
{
- if (src == prev) {
+ if (m instanceof RejectedOverload)
+ handleOverload ((RejectedOverload) m, src);
+ else if (src == prev) {
if (m instanceof SskPubKey)
handleSskPubKey ((SskPubKey) m);
else node.log ("unexpected type for " + m);
@@ -57,8 +59,6 @@
handleSskAccepted ((SskAccepted) m);
else if (m instanceof RejectedLoop)
handleRejectedLoop ((RejectedLoop) m);
- else if (m instanceof RejectedOverload)
- handleRejectedOverload ((RejectedOverload) m);
else if (m instanceof RouteNotFound)
handleRouteNotFound ((RouteNotFound) m);
else if (m instanceof SskDataFound)
Modified:
trunk/apps/load-balancing-sims/phase7/sim/handlers/SskRequestHandler.java
===================================================================
--- trunk/apps/load-balancing-sims/phase7/sim/handlers/SskRequestHandler.java
2006-11-17 05:00:47 UTC (rev 10967)
+++ trunk/apps/load-balancing-sims/phase7/sim/handlers/SskRequestHandler.java
2006-11-17 08:29:44 UTC (rev 10968)
@@ -20,16 +20,14 @@
public void handleMessage (Message m, Peer src)
{
- if (src != next) {
+ if (m instanceof RejectedOverload)
+ handleOverload ((RejectedOverload) m, src);
+ else if (src != next)
node.log ("unexpected source for " + m);
- return;
- }
- if (m instanceof Accepted)
+ else if (m instanceof Accepted)
handleAccepted ((Accepted) m);
else if (m instanceof RejectedLoop)
handleRejectedLoop ((RejectedLoop) m);
- else if (m instanceof RejectedOverload)
- handleRejectedOverload ((RejectedOverload) m);
else if (m instanceof RouteNotFound)
handleRouteNotFound ((RouteNotFound) m);
else if (m instanceof DataNotFound)