[Zope] ZODB or xySQL?

Michel Pelletier michel@digicool.com
Wed, 15 Mar 2000 10:08:47 -0800


Ragnar Beer wrote:
> 
> Hello Zopistas out there!
> 
> I just stumbled about the threadsafety of different SQL-DAs. I'm
> coming from mod_perl + MySQL so it seemed a natural choice for me to
> also run Zope with MySQL in the background. I'm doing research (= low
> budget) in clinical psychology and have people fill in all kinds of
> questionnaires regularly which I have to store somewhere later.
> Looking at some past messages it seems to me that free and speedy
> MySQL is awfully bottlenecked by MySQLdb and financially-out-of-range
> Oracle rules. But how big is the difference? Does anybody know?

I'm not certain if the MySQL DA is level 3 (threaded) or not.  I am
certain that MySQL does not support transactions and Zope does.  What
this means is, if you call some SQL and later on an error occours, Zope
will "roll back the transaction" and discard any changes you made in
Zope.  If Zope is used with Oracle, Sybase, ODBC, Postgress or any other
database that supports transactions, then those databases will
synchronize transaction commits and rollbacks with Zope.  This means
that your data is allways consistent across databases, which is a good
thing.

This may not effect you.  Your database may be entirely read only, in
which case it's not a problem at all.  Just keep in mind that you are
missing an important piece.
 
> It also came to my mind that I might be missing an important feature
> of Zope: ZODB. For some reason (lack of marketing?) I just didn't
> realize that there is a database behind Zope that I could use to
> store my stuff.

Keep in mind that this is not an _relational_ database.  It's an object
database.

> Last night I read some documentation but I have some
> questions left open:
> 
> Can I access ZODB via TCP/IP socket to retrieve data for statistical
> calculations?

Yep.  You can access the ZODB through HTTP, FTP, XML-RPC and WebDAV. 
That's really what Zope is, it's a network aware application on top of
an object database.
 
> What about performance?

The question is really too vague to get a specific answer.

-Michel