https://issues.apache.org/bugzilla/show_bug.cgi?id=56798

--- Comment #7 from Bertrand Renuart <brenu...@gmail.com> ---
(In reply to Chuck Caldarale from comment #6)
The pool currently uses java.util.concurrent.ArrayBlockingQueue unless a "fair"
implementation is requested (in which case a custom implementation is used).

A stack/LIFO/MRU strategy could be built on top of a
java.util.concurrent.LinkedBlockingDeque.

I'm not an expert in concurrency issues but both implementations seem to make
use of a single global lock for their put/get operations. We should therefore
get the same performances except may be for a small penalty for the
LinkedBlockingDeque due to the extra overhead of creating Nodes. 

I made a quick prototype by changing the idle pool into a LinkedBlockingDeque
and ran about 100 concurrent threads asking for 10 thousands connections each.
At first glance the difference between the two approaches is minimal. I haven't
got any further though because you may already have been doing tests in that
direction...

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to