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