[
https://issues.jboss.org/browse/JGRP-1980?page=com.atlassian.jira.plugin....
]
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)