I am facing a similar issue with Oracle database. Tim's slides doesn’t explain details of implementation. I have Apache httpd with mod_perl and DBI. Without many code changes, what does the proxy server look like to achieve the database connection pooling? What is "Apache running DBI Gofer" as shown in the slides page 26?
There is nothing exactly like the database pool in JDBC. However, there are solutions for this problem.
The first thing you should do is run a reverse proxy in front of your mod_perl server. That typically reduces the number of mod_perl processes by a factor of 10, i.e. 1000 mod_perl processes for 10,000 front-end proxy processes. See http://perl.apache.org/docs/1.0/guide/strategy.html#Adding_a_Proxy_Server_in_http_Accelerator_Mode
Note that there are many lightweight proxy servers now that can act as a front-end for mod_perl, not just Apache httpd.
That's definitely what you should do first, but if you've done that and it's still not enough, you can also use DBD::Gofer. There is an explanation here: http://search.cpan.org/~timb/DBI-1.627/lib/DBD/Gofer.pm#Connection_Pooling_and_Throttling
Tim's slides explaining how this was used in a real-world scenario are here:
On Thu, Jun 27, 2013 at 2:26 AM, xiaolan <email@example.com> wrote:
Currently I have been using Apache::DBI for long connections to Mysql.But having the problem that, if the apache processes are 10000, they open 10000 connections to mysql, this make the DB crashed.Is there any software for modperl working like Java's JDBC for connection pooling?