Author: mrogers
Date: 2006-10-30 18:17:39 +0000 (Mon, 30 Oct 2006)
New Revision: 10747
Modified:
trunk/apps/load-balancing-sims/phase6/DeadlineQueue.java
trunk/apps/load-balancing-sims/phase6/Peer.java
trunk/apps/load-balancing-sims/phase6/messages/Ack.java
trunk/apps/load-balancing-sims/phase6/messages/Message.java
Log:
Bandwidth & congestion refactoring, part 2
Modified: trunk/apps/load-balancing-sims/phase6/DeadlineQueue.java
===================================================================
--- trunk/apps/load-balancing-sims/phase6/DeadlineQueue.java 2006-10-30
18:06:44 UTC (rev 10746)
+++ trunk/apps/load-balancing-sims/phase6/DeadlineQueue.java 2006-10-30
18:17:39 UTC (rev 10747)
@@ -7,13 +7,11 @@
{
public int size = 0; // Size in bytes
private LinkedList<MESSAGE> messages = new LinkedList<MESSAGE>();
- private LinkedList<Double> deadlines = new LinkedList<Double>();
- public void add (MESSAGE m, double deadline)
+ public void add (MESSAGE m)
{
size += m.size();
messages.add (m);
- deadlines.add (deadline);
}
public int headSize()
@@ -24,13 +22,12 @@
public double deadline()
{
- if (deadlines.isEmpty()) return Double.POSITIVE_INFINITY;
- else return deadlines.peek();
+ if (messages.isEmpty()) return Double.POSITIVE_INFINITY;
+ else return messages.peek().deadline;
}
public MESSAGE pop()
{
- deadlines.poll();
MESSAGE m = messages.poll();
if (m != null) size -= m.size();
return m;
Modified: trunk/apps/load-balancing-sims/phase6/Peer.java
===================================================================
--- trunk/apps/load-balancing-sims/phase6/Peer.java 2006-10-30 18:06:44 UTC
(rev 10746)
+++ trunk/apps/load-balancing-sims/phase6/Peer.java 2006-10-30 18:17:39 UTC
(rev 10747)
@@ -55,14 +55,15 @@
// Queue a message for transmission
public void sendMessage (Message m)
{
+ m.deadline = Event.time() + MAX_DELAY; // FIXME
if (m instanceof Block || m instanceof DataInsert
|| m instanceof ChkDataFound) {
log (m + " added to transfer queue");
- transferQueue.add (m, Event.time() + MAX_DELAY);
+ transferQueue.add (m);
}
else {
log (m + " added to search queue");
- searchQueue.add (m, Event.time() + MAX_DELAY);
+ searchQueue.add (m);
}
// Start the node's timer if necessary
node.startTimer();
@@ -74,7 +75,7 @@
private void sendAck (int seq)
{
log ("ack " + seq + " added to ack queue");
- ackQueue.add (new Ack (seq), Event.time() + MAX_DELAY);
+ ackQueue.add (new Ack (seq, Event.time() + MAX_DELAY));
// Start the node's timer if necessary
node.startTimer();
// Send as many packets as possible
Modified: trunk/apps/load-balancing-sims/phase6/messages/Ack.java
===================================================================
--- trunk/apps/load-balancing-sims/phase6/messages/Ack.java 2006-10-30
18:06:44 UTC (rev 10746)
+++ trunk/apps/load-balancing-sims/phase6/messages/Ack.java 2006-10-30
18:17:39 UTC (rev 10747)
@@ -2,9 +2,10 @@
public class Ack extends Message
{
- public Ack (int seq)
+ public Ack (int seq, double deadline)
{
id = seq; // Space-saving hack
+ this.deadline = deadline;
}
public int size()
Modified: trunk/apps/load-balancing-sims/phase6/messages/Message.java
===================================================================
--- trunk/apps/load-balancing-sims/phase6/messages/Message.java 2006-10-30
18:06:44 UTC (rev 10746)
+++ trunk/apps/load-balancing-sims/phase6/messages/Message.java 2006-10-30
18:17:39 UTC (rev 10747)
@@ -13,6 +13,7 @@
public static int nextId = 0; // Each request and insert has a unique ID
public int id; // Unique request ID
+ public double deadline = 0.0; // Coalescing, stored here for convenience
// Override this
public int size()