Author: mrogers
Date: 2006-11-18 13:43:25 +0000 (Sat, 18 Nov 2006)
New Revision: 10984
Modified:
trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkInsertHandler.java
Log:
Some CHK inserts were still being double-counted
Modified:
trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkInsertHandler.java
===================================================================
--- trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkInsertHandler.java
2006-11-18 12:53:43 UTC (rev 10983)
+++ trunk/apps/load-balancing-sims/phase7/sim/handlers/ChkInsertHandler.java
2006-11-18 13:43:25 UTC (rev 10984)
@@ -11,7 +11,6 @@
private HashSet<Peer> receivers; // Peers that should receive data
private Block[] blocks; // Store incoming blocks for forwarding
private int blocksReceived = 0;
- private boolean transferred = false; // Did we send the data to anyone?
public ChkInsertHandler (ChkInsert i, Node node, Peer prev)
{
@@ -91,7 +90,6 @@
private void handleCompleted (TransfersCompleted tc, Peer src)
{
receivers.remove (src);
- transferred = true;
considerFinishing();
}
@@ -115,7 +113,10 @@
private void handleInsertReply (InsertReply ir)
{
if (searchState != ACCEPTED) node.log (ir + " out of order");
- if (prev == null) node.increaseSearchRate();
+ if (prev == null) {
+ node.log (this + " succeeded");
+ node.increaseSearchRate();
+ }
else prev.sendMessage (ir); // Forward the message
finish();
}
@@ -146,14 +147,11 @@
private void reallyFinish()
{
- inState = COMPLETED;
searchState = COMPLETED;
+ inState = COMPLETED;
node.cacheChk (key);
node.storeChk (key);
- if (prev == null) {
- if (transferred) node.log (this + " succeeded");
- else node.log (this + " failed (no xfers)");
- }
+ if (prev == null) node.log (this + " completed");
else prev.sendMessage (new TransfersCompleted (id));
node.removeMessageHandler (id);
}
@@ -169,25 +167,12 @@
return new String ("CHK insert (" + id + "," + key + ")");
}
- // Overrides MessageHandler.searchTimeout() to suppress failure message
- protected void searchTimeout (Peer p)
- {
- if (p != next) return; // We've already moved on to another peer
- if (searchState != ACCEPTED) return;
- node.log (this + " search timeout for " + p);
- p.localRejectedOverload(); // Back off from p
- // Tell the sender to slow down
- if (prev == null) node.decreaseSearchRate(); // Don't fail yet
- else prev.sendMessage (new RejectedOverload (id, false));
- finish();
- }
-
// Event callback
private void dataTimeout()
{
if (inState != STARTED) return;
node.log (this + " data timeout from " + prev);
- if (prev != null) prev.sendMessage (new TransfersCompleted(id));
+ prev.sendMessage (new TransfersCompleted(id));
reallyFinish();
}
@@ -196,7 +181,7 @@
{
if (inState != TRANSFERRING) return;
node.log (this + " transfer timeout from " + prev);
- if (prev != null) prev.sendMessage (new TransfersCompleted(id));
+ prev.sendMessage (new TransfersCompleted(id));
reallyFinish();
}