Zope+Oracle efficiency (was Re: [Zope-DB] ANN: eGenix mxODBC Zope Database Adapter, Version 1.0.0)

Dario Lopez-Kästen dario@ita.chalmers.se
Mon, 3 Mar 2003 23:24:16 +0100


(sent to the wrong list - sorry)

----- Original Message -----
From: "Paul Browning" <paul.browning@bristol.ac.uk>
> --On 28 February 2003 18:55 +0100 "M.-A. Lemburg" <mal@lemburg.com> wrote:
>
> <List of features snipped>
>
> Can someone who has a deeper understanding of this area than
> I please contrast (ideally against the mxODBC Zope DA feature list)
> things with ZOracleDA/DCOracle2?
>
> The links from <http://www.egenix.com/> took me eventually to
>
<http://www.datadirect-technologies.com/products/odbc/ken-north-report.asp>
> and the "Oracle ODBC Performance - Faster than Native" stuff.
>
> >From birth I've always been told ODBC is sloooowww .... don't go
> there. Might mxODBC Zope DA offer advantages to Zope/Oracle sites?
>
> We've had a tortured history with Zope+Oracle+Solaris (cf.
> <http://www.zope.org/Members/glpb/solaris>) and are about to
> side-step this by going Zope+Oracle+Linux.
>
> But the Oracle bit (i.e. ZOracleDA/DCOracle2) of the equation still
> looks dubious from time to time and so hence my questions.
>

well, I am no expert either but AFAIK Oracle uses SQL*NET for ODBC
communications (ODBC sits on top of SQL*NET). Not sure if this is slower or
not. I also have the impression that ODBC is slower per se, but perhaps
coupled with better connection pooling it makes mxODBC faster?

Nad how would mxODBC's pooling differ from Zope's "pooling" of connections
by keping them open?

I understand from previous mailexchange that the preformance of a heavly DB
driven (DB=RDBMS) is in part defined by the amount of ZODB-connections as
well as the amount of threads available to the Zope-process.

I wonder though if the *sheer number* of active/connected ZOracleDA objects
in the ZODB has some relevance to those numbers (ie. more open DA objects
means increase threads and/or ZODB connections?). I have not read any
specific numbers and I have yet to begin to understand how the amount of
ZODB connections has an impact on the usage of ZOracleDA
connections/objects.

We do have experienced problems when using many connections to different
schemas and I know that at least one more person has experienced similar
problems (mem leaks, etc). Some of them wnet away as we reduced the amount
of DA objects.

Also, I would like to know how the kind of connection pooling that mxODBC
uses benefits Zope. Does it spawn it's own threads in an external process or
how does it work? Would it be possible to increase the performance of
DCOracle2 by using similar tchniques?

Thanks,

/dario