[
http://jira.jboss.com/jira/browse/JBAS-4047?page=comments#action_12352214 ]
Scott Marlow commented on JBAS-4047:
------------------------------------
Currently, if multiple (client side) threads are trying to get a connection from
getPooledConnection(), they need to wait for the lock on PooledInvokerProxy instance.
The PooledInvokerProxy lock is held while getting an available connection from the pool
and while the connection is tested. If the connection is to a local (machine) process, it
may not take long for the server ACK to arrive. If the connection is to a remote
(machine) process, it could take longer depending on network latency (especially if a wan
is between tiers).
With the proposed change, we will not hold any client side lock, while the socket
connection is tested. We still obtain a lock on the pool (while checking size and
removing first entry) but that is released quickly.
PooledInvokerProxy.getPooledConnection() could hold a lock for
shorter period of time
-------------------------------------------------------------------------------------
Key: JBAS-4047
URL:
http://jira.jboss.com/jira/browse/JBAS-4047
Project: JBoss Application Server
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: Remoting
Affects Versions: JBossAS-5.0.0.Beta1, JBossAS-4.0.5.GA
Reporter: Scott Marlow
Assigned To: Scott Marlow
Priority: Optional
Fix For: JBossAS-4.2.0.CR1
Attachments: PooledInvokerProxy.diff
I'm seeing Java lock object contention in the
org.jboss.invocation.pooled.interfaces.PooledInvokerProxy.getPooledConnection(). I would
like to reduce the time that we hold the lock to boost performance. In a load test, we
were seeing contention up to 1-2 seconds waiting to get a connection from the pool.
Proposed change to 4.x is attached.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira