[Zope] This is completely bogus but..

Mike Fletcher mfletch@tpresence.com
Thu, 11 May 2000 10:34:59 -0400


There is little in the way of indirection or encapsulation within Zope.
That is, most products reach directly into other products to find
classes/functions. When you reload a product, to properly reload, you will
need to reload every product which is dependent on that product.
Furthermore, you'll need to track down every class and instance reference
which uses the product's elements (which may be, for instance, stored in
some global registry of available classes (which might be built by a given
product), or might be in the object cache etc.) and rebuild/replace those
items.

You could try clearing the object cache, scanning the global registries for
potentially dependent instances or classes, then re-loading all products (in
case some have global registries).  I don't think this will be an enormous
amount better (time-wise) than restarting.  Nothing is particularly
impossible, but the process is unlikely to be simple or straightforward
given the current architecture.  

You could try re-architecting Zope so that it uses more of a traditional
plug-in API, that is, some set of methods are registered/watched on an
object, all interaction between the object and the system goes through that
API.  Not sure about how you do stand-alone objects in that model, likely
have to simply rebuild all objects when a product is rebuilt.

No simple solutions, but at least I'm not the one planning to work on it :)
,
Mike


-----Original Message-----
From: news-list.zope@innominate.de [mailto:news-list.zope@innominate.de]
Sent: Thursday, May 11, 2000 8:06 AM
To: zope@zope.org
Subject: Re: [Zope] This is completely bogus but..


Chris Withers wrote:
> 
> > This could be a good thing if we want to hotpatch a server of some sort.
> >
> > -Morten
> 
> There was a thread on this a while back but I don't think there was any
> conclusive outcome.
> 
> I'd love so see Zope provide a facility for updating of products without
> restarting the server. It'd make python product development time a lot
> quicker and besides, restarting the server every time you rev a python
> product or two isn't really the sort of thing you want in a production
> system...
> 
> To be honest, I don't really see why you should need to restart the
> server anyway...
> 
> Comments?

agree 100%.
-- 
heiko.stoermer@innominate.de
                                                        innominate AG
                                                     networkingpeople
fon: +49.30.308806-0 fax: -77               web: http://innominate.de

_______________________________________________
Zope maillist  -  Zope@zope.org
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )