Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
Nightly Builds
-
None
-
Operating System: All
Platform: All
-
39590
Description
GenericObjectPool has recently been made FIFO with respect to the managed pool
objects – however, it is still not FIFO with respect to threads requesting
those objects. Specifically, because standard non-fair Java synchronization
monitors are used, later threads may barge ahead of earlier threads that are
already waiting for a pool object to become available. At its extreme, some
threads can cycle objects through the pool many times while others wait
interminable.
Not every application needs FIFO fairness with respect to threads, and such
fairness implies an overhead, so it need not be the default behavior, but it
would be a valuable option where many threads are sharing a smaller number of
pool objects.
I can submit a FairGenericObjectPool which achieves thread-fairness; it only
requires small changes to GenericObjectPool which allow some subclass overriding.
Attachments
Attachments
Issue Links
- blocks
-
DBCP-212 PoolingDataSource closes physical connections
- Closed