commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philip Williams (Created) (JIRA)" <>
Subject [jira] [Created] (DBCP-368) determine which connections to hold in pool by relative value
Date Mon, 10 Oct 2011 22:48:30 GMT
determine which connections to hold in pool by relative value

                 Key: DBCP-368
             Project: Commons Dbcp
          Issue Type: New Feature
            Reporter: Philip Williams

Situation: a Firebird-Classic database (each connection has independent metadata cache), in
a metadata-heavy environment; many "quick" actions will never force the database server to
load full metadata, but a few will, in our case resulting in 200MB of metadata cache in memory
(takes about 3 seconds to load, visible latency to the user); any connection that has done
this is "more valuable" to us, and we'd prefer to keep those connections in the pool, and
remove idle connections which haven't incurred this cost yet and are relatively cheap to recreate
later if our load increases. Doing this is preferable to forcing ALL connections to load metadata
at start, as this means the pool will always have a startup cost (in time), and the server
will likely use more memory than really necessary.
Proposal: add new configuration parameter; if set, run the SQL string and get back a single-column,
single-row result-set containing an arbitrary "value" as determined by the connection; prefer
to close the lowest(?)-value connections first, to get down to the configured minIdle. Would
require querying each open connection, when the pool is over-full, to determine which ones
are most valuable. If not set, use current algorithm (based on age?).

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message