[Zope] zope anywhere near aol server?

ender kthangavelu@earthlink.net
Thu, 5 Apr 2001 19:37:27 -0700


On Thursday 05 April 2001 22:10, Jason Byron wrote:
>>Scenario:  Let's say you've got an application that
>>uses aol server and the razor extensions to it.  Most
>>of the code is done with TCL, some C.  The app is
>>fairly dynamic and is setup in a clustered environment
>>behind a cisco content switch.
>>
>>Is there anyway to improve on, or match, the
>>performance of a system like this but substituting
>>Zope for aol server?

i've used aolserver (with the acs) and zope both extensively. 
in terms of performance for a single instance of both, aolserver will knock 
the pants off zope, but considering its a multithreaded server written in c, 
that probably isn't a big surprise. 

>>Has anyone done any performance comparisons of Zope to
>>aol server?

hard numbers, i don't have. mydomain used to be running on zope, but they 
switched over to aolserver. they have an xteremly busy site and were running 
into problems with zope/oracle so they switched. aolserver is as fast as 
apache (normally faster if tuning done to both). so a look at zope vs apache 
will give you a reasonable comparison.

>>Does Zope even come close?

no

>>Would Zeo have a better chance?

yes, but if you want to add in clustering with load balancing to compare vs a 
single aolserver instance, its not really a fair comparision, esp. since you 
can cluster aolserver just as easily.

>>Do you think putting squid (or apache, or aol) in
>>front of Zope would bring it closer to this setup, or  
>>would this be more of a hassle than it's worth in a
>>clustered environment?

putting apache in front of zope will slow it down, as you have the xtra 
overhead of an additonal communication layer, be it fcgi, pcgi, etc.

the same would be true of aolserver except it doesn't have support afaik for 
fcgi, pcgi so it can't frontend zope.

if you want to use squid you can probably achieve comparible performance, but 
then again you can use squid and <insert your favorite app server here> to do 
the same. this also makes the assumption that you have semi-static content 
and you don't want to do much personalization.

>>What about mod_backhand? 

don't know what this is.

> Could this be used in anyway
>>to help improve zope's performance?
>>
>>Has anyone thought of dropping medusa and trying to
>>integrate zope into a web server like aol/apache?

i don't know enough about the python/apache mods to really say, i've used 
them and i found them problematic for heavy usage (this was over a year ago). 

embedding zope in aolserver is another matter,  as chris said, titus brown 
and micheal haggerty of pywx.sourceforge.net (python in aolserver) were 
interested in writing a direct connection to zpublisher from an aolserver 
thread. judging from the arch. of both i don't think it would be that hard to 
do, and hopefully dc will commit a few resources and help these guys do it 
(they're not zopitistas and could use some pointers on zope's publisher 
interface to get going, in fact titus wrote the infamous why not zope paper)
assuming someone wants to rewrite a da, this would give zope access to 
aolservers excellent database adaptors that are mulithreaded and high 
performance and aolservers rich caching capabilities (nscache or rolling your 
own custom layer via an nsv_ construct).

>>Whew, Is this a lot of questions or what?
>>
>>I'd love to have some real world comparisons, but any
>>thought on the subject would be great.

i think you're focusing way too much on the performance aspects. programming 
in aolserver and zope are completely different (apples and oranges). 
generally i've found zope to be much more productive and that saves me time 
and time is money, esp. when hardware is cheap enough that you can just throw 
another box at it.

because of aolserver's great integration with rdbms (conn pooling, nice 
adaptors, rich exposed interfaces) you'll almost always see the same style of 
programming in any aolserver site. its basically a bunch of scripts talking 
to the database and extracting and formating data. oo concepts are pretty 
non-existent at this level, and the same thing still happens if you're using 
python in aolserver. its because this model is so well supported in aolserver 
that most people never bother going away from it, even though in many 
respects aolserver is much more an application server than a webserver like 
apache ( u can layout shared memory, open sockets, grab external urls, 
schedule/create threads all from tcl within it, ands all of it portable 
because its based on the aolserver libraries). if you add in the acs you can 
get a lot of functionality with it. but....

programming with zope gives you so many features, its dizzying. acquistion, 
db integration, xml, inheritance, ldap, oo persistence, 100s of drop in 
products, access to anything python can touch, plus you get to program in 
python:)

programming w/ a bare aolserver (sans ACS) is going to be alot slower than 
programming w/ zope and a few choice products. with the acs4 its alot closer, 
but than it comes down more to what you're comfortable and what you're 
problem domain is.

personally, i'm just more productive with zope, and even though i'm working 
on the openacs at the moment, alot of the reason is so i can use the 
datamodels in zope. 

and if you want to compare open source communities as well than zope wins 
hands down.

i guess what i'm saying is you probably shouldn't worry about performance and 
instead think about what you want to program in. if all you want is to 
program sql on the web, aolserver is probably the way to go. if you want rich 
oo features than just zope it. if you're worried about performance for either 
than just toss more boxes at it. 

cheers

kapil thangavelu