Skip to content

Commit

Permalink
added bounded list of last 10 retransmissions
Browse files Browse the repository at this point in the history
  • Loading branch information
belaban committed Mar 21, 2007
1 parent 06b9c71 commit 2ba1303
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 12 deletions.
6 changes: 5 additions & 1 deletion src/org/jgroups/jmx/protocols/pbcast/NAKACK.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@


/** /**
* @author Bela Ban * @author Bela Ban
* @version $Id: NAKACK.java,v 1.6 2005/11/08 11:08:32 belaban Exp $ * @version $Id: NAKACK.java,v 1.7 2007/03/21 14:41:14 belaban Exp $
*/ */
public class NAKACK extends Protocol implements NAKACKMBean { public class NAKACK extends Protocol implements NAKACKMBean {
org.jgroups.protocols.pbcast.NAKACK p; org.jgroups.protocols.pbcast.NAKACK p;
Expand Down Expand Up @@ -110,4 +110,8 @@ public String printMessages() {
return p.printMessages(); return p.printMessages();
} }


public String printStabilityMessages() {
return p.printStabilityMessages();
}

} }
3 changes: 2 additions & 1 deletion src/org/jgroups/jmx/protocols/pbcast/NAKACKMBean.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@


/** /**
* @author Bela Ban * @author Bela Ban
* @version $Id: NAKACKMBean.java,v 1.5 2005/11/08 11:08:21 belaban Exp $ * @version $Id: NAKACKMBean.java,v 1.6 2007/03/21 14:41:14 belaban Exp $
*/ */
public interface NAKACKMBean extends ProtocolMBean { public interface NAKACKMBean extends ProtocolMBean {
int getGcLag(); int getGcLag();
Expand All @@ -29,4 +29,5 @@ public interface NAKACKMBean extends ProtocolMBean {
int getPendingRetransmissionRequests(); int getPendingRetransmissionRequests();
String printSentMessages(); String printSentMessages();
String printMessages(); String printMessages();
String printStabilityMessages();
} }
21 changes: 14 additions & 7 deletions src/org/jgroups/protocols/pbcast/NAKACK.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
* vsync. * vsync.
* *
* @author Bela Ban * @author Bela Ban
* @version $Id: NAKACK.java,v 1.117 2007/03/21 11:18:33 belaban Exp $ * @version $Id: NAKACK.java,v 1.118 2007/03/21 14:41:15 belaban Exp $
*/ */
public class NAKACK extends Protocol implements Retransmitter.RetransmitCommand, NakReceiverWindow.Listener { public class NAKACK extends Protocol implements Retransmitter.RetransmitCommand, NakReceiverWindow.Listener {
private long[] retransmit_timeout={600, 1200, 2400, 4800}; // time(s) to wait before requesting retransmission private long[] retransmit_timeout={600, 1200, 2400, 4800}; // time(s) to wait before requesting retransmission
Expand Down Expand Up @@ -123,6 +123,9 @@ public class NAKACK extends Protocol implements Retransmitter.RetransmitCommand,


private static final int NUM_REBROADCAST_MSGS=3; private static final int NUM_REBROADCAST_MSGS=3;


/** keeps the last 10 stability messages */
private final BoundedList stability_msgs=new BoundedList(10);





public NAKACK() { public NAKACK() {
Expand Down Expand Up @@ -364,9 +367,17 @@ public String printStats() {
sb.append(missing).append("\n"); sb.append(missing).append("\n");
} }


sb.append("\nStability messages received\n");
sb.append(printStabilityMessages()).append("\n");

return sb.toString(); return sb.toString();
} }


public String printStabilityMessages() {
StringBuilder sb=new StringBuilder();
sb.append(stability_msgs.toStringWithDelimiter("\n"));
return sb.toString();
}




public Vector providedUpServices() { public Vector providedUpServices() {
Expand Down Expand Up @@ -703,10 +714,6 @@ private void handleXmitReq(Address xmit_requester, long first_seqno, long last_s
NakReceiverWindow win=null; NakReceiverWindow win=null;
boolean amISender; // am I the original sender ? boolean amISender; // am I the original sender ?


// System.out.println("-- [" +local_addr + "] received XMIT_REQ from " + xmit_requester + " for " + first_seqno +
// " - " + last_seqno);


if(trace) { if(trace) {
StringBuilder sb=new StringBuilder(); StringBuilder sb=new StringBuilder();
sb.append(local_addr).append(": received xmit request from ").append(xmit_requester).append(" for "); sb.append(local_addr).append(": received xmit request from ").append(xmit_requester).append(" for ");
Expand Down Expand Up @@ -865,7 +872,6 @@ private void handleXmitRsp(Message msg) {
if(rebroadcasting && count > 0) { if(rebroadcasting && count > 0) {
Digest tmp=getDigest(); Digest tmp=getDigest();
if(tmp.isGreaterThanOrEqual(rebroadcast_digest)) { if(tmp.isGreaterThanOrEqual(rebroadcast_digest)) {
// System.out.println("CANCEL rebroadcasting");
cancelRebroadcasting(); cancelRebroadcasting();
} }
} }
Expand Down Expand Up @@ -909,7 +915,6 @@ private void rebroadcastMessages() {
their_high=their_entry.getHighest(); their_high=their_entry.getHighest();
my_high=my_entry.getHighest(); my_high=my_entry.getHighest();
if(their_high > my_high) { if(their_high > my_high) {
//System.out.println("sending XMIT request to " + sender + " for messages " + my_high + " - " + their_high);
if(trace) if(trace)
log.trace("sending XMIT request to " + sender + " for messages " + my_high + " - " + their_high); log.trace("sending XMIT request to " + sender + " for messages " + my_high + " - " + their_high);
retransmit(my_high, their_high, sender); retransmit(my_high, their_high, sender);
Expand Down Expand Up @@ -1205,6 +1210,8 @@ private void stable(Digest d) {
log.trace("received stable digest " + d); log.trace("received stable digest " + d);
} }


stability_msgs.add(d);

Map.Entry entry; Map.Entry entry;
Address sender; Address sender;
org.jgroups.protocols.pbcast.Digest.Entry val; org.jgroups.protocols.pbcast.Digest.Entry val;
Expand Down
25 changes: 22 additions & 3 deletions src/org/jgroups/util/List.java
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,4 @@
// $Id: List.java,v 1.12 2006/10/10 15:46:24 belaban Exp $ // $Id: List.java,v 1.13 2007/03/21 14:41:15 belaban Exp $


package org.jgroups.util; package org.jgroups.util;


Expand Down Expand Up @@ -216,7 +216,7 @@ public int size() {
} }


public String toString() { public String toString() {
StringBuffer ret=new StringBuffer("["); StringBuilder ret=new StringBuilder("[");
Element el=head; Element el=head;


while(el != null) { while(el != null) {
Expand All @@ -228,9 +228,26 @@ public String toString() {
return ret.toString(); return ret.toString();
} }


public String toStringWithDelimiter(String delimiter) {
Element el=head;
boolean first=true;
StringBuilder sb=new StringBuilder();
while(el != null) {
if(first) {
first=false;
}
else {
sb.append(delimiter);
}
sb.append(el.obj);
el=el.next;
}
return sb.toString();
}



public String dump() { public String dump() {
StringBuffer ret=new StringBuffer("["); StringBuilder ret=new StringBuilder("[");
for(Element el=head; el != null; el=el.next) for(Element el=head; el != null; el=el.next)
ret.append(el.obj).append(" "); ret.append(el.obj).append(" ");


Expand Down Expand Up @@ -428,6 +445,8 @@ public static void main(String[] args) {
l.addAtHead(new Integer(4)); l.addAtHead(new Integer(4));
l.addAtHead(new Integer(5)); l.addAtHead(new Integer(5));


System.out.println("list: " + l.toStringWithDelimiter(", "));

System.out.println("Removed from head: " + l.removeFromHead()); System.out.println("Removed from head: " + l.removeFromHead());
System.out.println("Removed from head: " + l.removeFromHead()); System.out.println("Removed from head: " + l.removeFromHead());
System.out.println("Removed from head: " + l.removeFromHead()); System.out.println("Removed from head: " + l.removeFromHead());
Expand Down

0 comments on commit 2ba1303

Please sign in to comment.