[
https://issues.jboss.org/browse/JGRP-1396?page=com.atlassian.jira.plugin....
]
Bela Ban commented on JGRP-1396:
--------------------------------
Regarding the locked version of RingBuffer: there are still 2 big downsides to it:
#1 An add() will block if the capacity is full. I don't like blocking, and even if we
run a stable protocol for the sender, it still complicates the code and the sender can
still block, even if it's only for a short duration.
#2 Every RingBuffer has a fixed size buffer which is either too big (if we send few
messages) or too small (if we always exceed its capacity). A cluster of 1000 using
RingBuffer in NAKACK2, with an xmit_buf_size of 1'000'000 leads to 1 GB of total
heap needed for all RingBuffers !
I think this pretty much kills RingBuffer for me, at least for the time being, and I think
I'll go back to NakReceiverWindow using a RetransmitTable (which dynamically grows and
shrinks, without the overhead of ConcurrentHashMap)...
However, we can still achieve the goal of this JIRA, by trashing Retransmitter (and its
complexity), and only using 1 retransmitter task for all of the NakReceiverWindows !
NAKACK2: merge NakReceiverWindow and Retransmitter
--------------------------------------------------
Key: JGRP-1396
URL:
https://issues.jboss.org/browse/JGRP-1396
Project: JGroups
Issue Type: Enhancement
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.1
Both NakReceiverWindow and Retransmitter use their own data structures to keep a list of
messages received (NRW) and seqnos to be retransmitted (Retrasmitter). This is redundant
and costly memory-wise.
I suggest let's merge the 2 classes, or at least let them share the data structure
which keeps track of received messages.
Suggestion II: create a ring buffer with a (changeable) capacity that keeps track of
received messages and messages to be retransmitted.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira