[Zope] Running ZopeHTTPServer and PCGI together = a bad thing ?

Michel Pelletier michel@digicool.com
Thu, 3 Jun 1999 10:17:50 -0400


> -----Original Message-----
> From: Tony McDonald [mailto:tony.mcdonald@ncl.ac.uk]
> Sent: Thursday, June 03, 1999 4:05 AM
> To: Michel Pelletier; Zope List
> Subject: RE: [Zope] Running ZopeHTTPServer and PCGI together = a bad
> thing ?
> 
> 
> >Yes there is some rather expensive forking overhead that 
> must be done to
> >get from Apache to the Zope long running process.  This is startup
> >overhead only, once the connection gets to Zope the 'time to 
> complete'
> >will be identical.
> 
> Is this a fork for *every* request, eg every link I select. In that 
> case, isn't it pretty expensive overall?
> 

A wafer-thin CGI program is forked for every request, this is used to
connect up Apache and the Zope long running process.  So yes, this
expensive fork happens for every request.  It's no different, however,
then other CGI overhead.  One of these days, someone is going to write a
mod_pcgi module for Apache, and take that expensive fork out.  For light
loads, it's really not noticeable, but for heavy loads, one fork per
request gets heavy.  ZServer is noticably faster in this regard than
Apache.

> 
> I've used bbb.py from the Zope 2 distribution to create XML 
> transactions for 0.. 9211505 and 11844613... 11847812 (but that still 
> leaves 9211505..11844613 in limbo)
> 
> unnh... so what are my options now?
> 

Well, first realize that corruption is corruption, there may be no way
to get some of your info back from the lala lands.  If two process
writes conflicted with each other, one wins, and one looses (often the
winner however does not win completely, but leave a corrupted record
behind).

> 1) Chop the database at location 11844613 (but then what about the 
> junk at 9211505)

Hmm.. first off, does it crash your Zope when you try and use it
correctly?  I would try wacking off the last 3K or so bytes starting at
the last corrupted record, and then try exporting some stuff out, look
for the point in managing the site where it breaks, this is probably
where it encouters the broken record.

> 2) export as much as possible to .bbe files and reimport into a clean 
> database?

If you can export these objects, try this at least to preserve your
information somewhere.

> 3) use the bbb.py from the Zope 2 distribution to get transactions in 
> XML (but then how do I recreate the database - bbb.py doesn't mention 
> creation of a database)?

Uh yeah, the whole XML thing isn't complete yet.  The dump to XML is
really for database inspection, not manipulation or transportation, for
the moment.  This will probably change.

-Michel

> 4) give up? ... nope, that's not an option. Zope is just so 
> damn useful.
> 
> I hate to say this, but HELP!
> Tone