[Zope] How to keep an object in the zodb cache?

Casey Duncan casey_duncan@yahoo.com
Fri, 25 Jan 2002 19:19:32 -0800 (PST)


If you are using Zope 2.5, then you can use the
ram-based temp_folder to store data in memory on the
server. Otherwise you can use RAM caching, which is a
separate Zope level service . There's bound to be a
howto somewhere....

-Casey

--- Dieter Maurer <dieter@handshake.de> wrote:
> Gregory Popovitch writes:
>  > I am writing a product which loads a large python
> structure
>  > object from disk. I don't wish to store this
> structure in the Zope
>  > Zodb, so I load it in a variable prefixed with
> _v_.
>  > 
>  > The code looks like:
>  > 
>  > class myproduct(SimpleItem.SimpleItem):
>  > 
>  >     def __init__(self, id, title):
>  >         " initializes a new instance of a
> myproduct"
>  >         self.id = id
>  >         self.title = title
>  >         self._v_store = None
>  > 
>  >     def load(self):
>  >         " load store into memory "
>  >         import mystore
>  >         if not hasattr(self, '_v_store') or not
> self._v_store:
>  >              print "loading store"
>  >              self._v_store =
> mystore.LoadStore(self.title)
>  > 
>  > The function self.load() is called from each URL
> method to ensure
>  > that the store is loaded.
>  > 
>  > My problem is that after some inactivity in the
> web server, I can see
>  > that the store is reloaded when a web page is
> requested, and it takes
>  > some time.
>  > 
>  > I assume that the object self._v_store has been
> flushed from the zodb cache
>  > and discarded.
> Your "self" is flushed from the cache, when it is
> later reloaded
> from ZODB, it lost its "_v_store".
> 
> I do not know a way how to prevent selective objects
> from being
> flushed. But you can globally change flushing
> behaviour in
> "Control Panel"->"Database Management"->"Cache
> Management" (or some
> similar path).
> 
> 
> Dieter


__________________________________________________
Do You Yahoo!?
Great stuff seeking new owners in Yahoo! Auctions! 
http://auctions.yahoo.com