[
https://issues.jboss.org/browse/JBJCA-1305?page=com.atlassian.jira.plugin...
]
Tom Jenkinson edited comment on JBJCA-1305 at 12/8/15 5:25 AM:
---------------------------------------------------------------
From
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore....:
"Generally, semaphores used to control resource access should be initialized as fair,
to ensure that no thread is starved out from accessing a resource. When using semaphores
for other kinds of synchronization control, the throughput advantages of non-fair ordering
often outweigh fairness considerations."
As I understand it this semaphore is for accessing a resource so the guidance from the SDK
is that fair would be desirable for that type of work load. However, if there are still
use-cases that guard access to resources where none-fair is advantageous, a configurable
option may therefore be appropriate.
was (Author: tomjenkinson):
From
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore....:
"Generally, semaphores used to control resource access should be initialized as fair,
to ensure that no thread is starved out from accessing a resource. When using semaphores
for other kinds of synchronization control, the throughput advantages of non-fair ordering
often outweigh fairness considerations."
As I understand it this semaphore is for accessing a resource so the guidance from the SDK
is that fair would be desirable for that type of work load. However, if there are still
use-cases that guard access to resources where none-fair is advantageous, a configurable
option may therefore be appropriate. Please can you create a forum thread to discuss this
further?
Performance degradation using fair semaphores in heavily contended
workloads
----------------------------------------------------------------------------
Key: JBJCA-1305
URL:
https://issues.jboss.org/browse/JBJCA-1305
Project: IronJacamar
Issue Type: Enhancement
Components: Core
Affects Versions: WildFly/IronJacamar 1.3.1.Final
Reporter: John O'Hara
Assignee: Jesper Pedersen
Under heavy contention, a fair semaphore causes performance degradation for threads
trying to acquire a permit from the semaphore. Changing the semaphore to not fair
alleviates the performance degradation under heavy contention.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)