Hi,

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:
http://www.slideshare.net/Tim.Bunce/dbdgofer-200809

- Perrin


On Thu, Jun 27, 2013 at 2:26 AM, xiaolan <practicalp...@gmail.com> wrote:

> Hi,
>
> 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?
>
> Thanks.
>

Reply via email to