diff --git a/src/org/jgroups/protocols/pbcast/NAKACK.java b/src/org/jgroups/protocols/pbcast/NAKACK.java index 1982ffff0a7..47166c427ca 100644 --- a/src/org/jgroups/protocols/pbcast/NAKACK.java +++ b/src/org/jgroups/protocols/pbcast/NAKACK.java @@ -136,6 +136,20 @@ public class NAKACK extends Protocol implements Retransmitter.RetransmitCommand, @Property(description="If true, trashes warnings about retransmission messages not found in the xmit_table (used for testing)") private boolean log_not_found_msgs=true; + @Property(description="Number of rows of the matrix in the retransmission table (only for experts)",writable=false) + int xmit_table_num_rows=5; + + @Property(description="Number of elements of a row of the matrix in the retransmission table (only for experts). " + + "The capacity of the matrix is xmit_table_num_rows * xmit_table_msgs_per_row",writable=false) + int xmit_table_msgs_per_row=10000; + + @Property(description="Resize factor of the matrix in the retransmission table (only for experts)",writable=false) + double xmit_table_resize_factor=1.2; + + @Property(description="Number of milliseconds after which the matrix in the retransmission table " + + "is compacted (only for experts)",writable=false) + long xmit_table_max_compaction_time=10 * 60 * 1000; + /* -------------------------------------------------- JMX ---------------------------------------------------------- */ @@ -1297,7 +1311,9 @@ private void setDigest(Digest digest, boolean merge) { private NakReceiverWindow createNakReceiverWindow(Address sender, long initial_seqno, long lowest_seqno) { - NakReceiverWindow win=new NakReceiverWindow(sender, this, initial_seqno, lowest_seqno, timer, true); + NakReceiverWindow win=new NakReceiverWindow(sender, this, initial_seqno, lowest_seqno, timer, true, + xmit_table_num_rows, xmit_table_msgs_per_row, + xmit_table_resize_factor, xmit_table_max_compaction_time); if(use_stats_for_retransmission) { win.setRetransmitTimeouts(new ActualInterval(sender));