[jboss-jira] [JBoss JIRA] (JGRP-1396) NAKACK2: merge NakReceiverWindow and Retransmitter

Bela Ban (JIRA) jira-events at lists.jboss.org
Thu Jan 12 06:52:21 EST 2012


    [ https://issues.jboss.org/browse/JGRP-1396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12655478#comment-12655478 ] 

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

        


More information about the jboss-jira mailing list