[Zope] OT: Upgrading postgresql

Jens Vagelpohl jens@digicool.com
Wed, 07 Feb 2001 22:13:03 -0500


here's an interesting tidbit i found when comparing ZPyGreSQLDA and ZPoPyDA
on a test system (RH 6.2, PostGreSQL 7.0.2):

i wrote a standalone script (run independent of Zope from the command line)
that uses python's threading facilities to create five threads. all threads
immediately call a DTML method in Zope which iterates over the result of a
large ZSQL query and renders it.

my testing had quite unexpected results. in a nutshell, in my setup the
alleged thread-safety of ZPoPyDA did not give me any advantages. i found
ZPyGreSQLDA to be more predictable and faster.

ZPyGreSQLDA serializes all queries. the five threads and their requests were
executed one after another, every single request took about 15 seconds. the
first thread finished at 15 seconds, the second at 30 seconds, and so forth.

ZPoPyDA on the other hand had me wait a full 50 seconds before i got the
first result set back. granted, after i had the first set the others came
back in about 4-5 second intervals, but the fact that i had to wait that
long for the first thread to return swayed my decision in favor of
ZPyGreSQLDA.

i guess what i am trying to say is that "thread safety" does not
automatically mean "better" or "faster". you have to take your usage
patterns into account, especially when your site does much more reads from
the database.

jens



on 2/7/01 20:47, Bak@kedai at kedai@kedai.com.my wrote:

> but since your on postgres7.0.x, why not use PoPy/ZPoPyDA?  the PoPy
> developer claims that PoPY/ZPoPYDA is level 2 thread safety, and it is
> actively maintained.