[jboss-jira] [JBoss JIRA] (JGRP-1980) Improve throughput under contention for FlowControl.Credit

Bela Ban (JIRA) issues at jboss.org
Thu Jan 21 12:15:01 EST 2016


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

Bela Ban commented on JGRP-1980:
--------------------------------

Possible improvements in {{UFC}} ({{MFC}} is not really used by Infinispan, therefore we'll look at it later):
* {{FlowControl$Credit.needsToSendCreditRequest()}} uses the same lock as {{decrementIfEnoughCredits()}} and {{increment()}}. Since this method is called *for every sent message*, using a separate lock will remove roughly 50% of the lock access:
** Every send calls {{decrementIfEnoughCredits()}}: ca. 50%
** Every send calls {{needsToSendCreditRequest()}}: ca. 50%
** A replenishment calls {{increment()}}: ca. 2%. This is not called frequently and depends on the max number of credits, the size of the messages and the number of sender threads

> Improve throughput under contention for FlowControl.Credit
> ----------------------------------------------------------
>
>                 Key: JGRP-1980
>                 URL: https://issues.jboss.org/browse/JGRP-1980
>             Project: JGroups
>          Issue Type: Enhancement
>    Affects Versions: 3.6.6
>            Reporter: Sanne Grinovero
>            Assignee: Bela Ban
>             Fix For: 3.6.8
>
>         Attachments: bla.java
>
>
> The methods {{org.jgroups.protocols.FlowControl.Credit.decrementIfEnoughCredits(long, long)}} and {{org.jgroups.protocols.FlowControl.Credit.decrementAndGet(long)}} are contending the locks on class synchronization when stress testing JGroups.
> Wondering if we can think of polishing the implementation, although it looks like challenging.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list