Subject Re: AW: [Firebird-Java] connection pool
Author Mark Rotteveel
On 25-2-2014 15:06, Steffen Heil (Mailinglisten) wrote:
>> As writing a correct and performant connection pool is rather hard, I think that is better to leave that to projects where that is the main focus (eg BoneCP, c3p0, others I forget right now).
>
> As mentioned earlier, I definitely preferred the FBWrappingDataSource because of that feature and we use PreparedStatements ONLY and we call "connection.prepareStatement" often more than 1000 times a second...
> So is there any other pool who can make use of statement pooling?

BoneCP and c3p0 both support statement pooling.

As far as I know the new jdbc-pool introduced with Tomcat 7 as a
replacement for DBCP also supports statement pooling and can be used
standalone.

HikariCP doesn't support statement pooling as "Most major database JDBC
drivers already have a Statement cache that can be configured".

Unfortunately Jaybird currently does not provide internal statement
pooling (that is: within the Connection itself).

I am thinking of adding something like that in Jaybird 3.0 or later, but
I also want to prevent Jaybird 3.0 from becoming "Jaybird Nukem Forever" ;)

> Does anyone here on the list have any experience with one of the mentioned pools in respect to performace in parallel execution?

HikariCP has a basic comparison done with a stub JDBC driver:
https://github.com/brettwooldridge/HikariCP

BoneCP has a comparison between BoneCP (various configs), DBCP, the new
tomcat connection pool (jdbc-pool), c3p0:
http://jolbox.com/index.html?page=http://jolbox.com/dynamic-benchmark.html

jdbc-pool (during development, not sure if there is a more recent one
with the finished product):
http://www.tomcatexpert.com/blog/2010/03/22/understanding-jdbc-pool-performance-improvements

However these don't really look into statement pooling in their
performance comparisons.

Mark
--
Mark Rotteveel