[Zope-dev] A thought for 2.6 about various leaks and memory problems

Ross J. Reedstrom reedstrm@rice.edu
Tue, 19 Mar 2002 11:36:15 -0600


On Tue, Mar 19, 2002 at 12:07:12PM -0500, Adam Manock wrote:
> 
> >Interesting. One complication with that scheme is that ther is no
> >convenient place to put caching. If it goes between Pen and Zope, you
> >need many instances of your cache. If it goes between Pen and the
> >clients, Pen's client-clustering is defeated because it sees only one
> >client.
> 
> Postgresql takes a similar (multi process) approach to achieving stability
> as apache.

As a long-time user and hanger-on of the PostgreSQL community, let me
take umberage at that statement. While it's true that postgresql uses a
multiprocess model, and that model does protect other backends from poorly
written C extensions, any inexplicable backend crashes are treated as
serious bugs by the pgsql core developers, tracked down and exterminated.
So, while the robustness of the system is enhanced by being multiprocess,
its stability is due to a rabid devotion to quality code (both design
and implementation), and bug hunting.

> 
> see pg 4 of http://developer.postgresql.org/pdf/transactions.pdf
> 
> Think shared memory caching behind the Zope worker processes ;-)

> And web server / proxy shared memory caching in front of the Zope worker
> processes.

Interestingly, a discussion about caching strategies for web client apps
has been going on in the postgresql HACKERS mailing list. There's signifcant
reluctance to putting it in the DB backend, because it's seen as the clients
job to cache.

> 
> Of course, for stability, there is also the possibility of doing a OpenBSD
> style audit of the entire Zope (and possibly python) code base to make
> the code as close to perfect (and therefore stable) as the OpenBSD OS
>  is ;-)   Volunteers?

Yeah, that's what I just described above, I think, for the pgsql core. So
it uses _both_.

Ross
P.S. note the PostgreSQL, postgresql, and pgsql are used interchangably
to refer to the entire RDBMS system and project. The first is 'official'
the last two are due to various levels of typing lazyness.