Thanks for the responses,

Jason, I don't think reducing the number of database connections will hurt
responsiveness.  Even though there are 3 separate Catalyst apps, each HTTP
request will only involve one of them (since they all run out of the same
web server), so there should never be contention between the apps for the
shared database connection.  Does this make sense?

Tom and Nicholas, I wish this was premature optimization, but my
organization has experienced serious performance issues in the past related
to multiple (Oracle) database connections per HTTP server process.  Extra
Oracle connections are expensive to maintain, particularly on the database
server, and so we've tried to ensure that a single server process only has a
single connection to a given database (since that's all it should need at
any given time).

I've attached a Devel::NYTProf screenshot for one of the server processes I
profiled this morning. Looks like it confirms the multiple database
connections.

So back to initial question -- How do I update the models of my three
Catalyst apps to share a single Oracle database connection?

Thanks again.  I really appreciate your feedback.

 Simon

On Tue, Sep 7, 2010 at 11:40 PM, Nicholas Wehr
<[email protected]>wrote:

> I'm with Tom on this one. Unless you've narrowed all optimization efforts
> and this is all you have left - it could be worth a try.. but as Jason
> points out, you may not gain a thing. I'd recommend profiling your code and
> tracking down performance issues from that base level. Please post your
> results - I've very curious!
>
> -nw
>
>
> On Tue, Sep 7, 2010 at 7:21 PM, Tomas Doran <[email protected]> wrote:
>
>>
>> On 7 Sep 2010, at 18:59, Simon Miner wrote:
>>
>>> All three of these apps run under a single Apache 1.3.42/mod_perl 1.31
>>> server.
>>>
>>
>> Wow, mod_perl 1.... Ok then :)
>>
>>
>>   It appears that each server process creates a unique database connection
>>> variable for each of these apps. Although these database connections get
>>> reused from request to request, I would like to make things even more
>>> efficient by having a single database connection variable per server process
>>> which gets shared across all 3 Catalyst apps.
>>>
>>
>> Why do you think that this will help or affect anything?
>>
>> I.e. is this not premature optimisation?
>>
>> Cheers
>> t0m
>>
>>
>>
>> _______________________________________________
>> List: [email protected]
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive:
>> http://www.mail-archive.com/[email protected]/
>> Dev site: http://dev.catalyst.perl.org/
>>
>
>
> _______________________________________________
> List: [email protected]
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/[email protected]/
> Dev site: http://dev.catalyst.perl.org/
>
>


-- 
-- Simon

<<attachment: nytprof.gif>>

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to