[Zope-dev] how bad are per-request-write-transactions

Dieter Maurer dieter@handshake.de
Thu, 18 Apr 2002 22:17:38 +0200


Ivo van der Wijk writes:
 > On Wed, Apr 17, 2002 at 07:54:04AM -0400, Paul Everitt wrote:
 > > Let's take the next step and say that you can live with a little 
 > > volatility in the data.  You write an object that caches ten seconds 
 > > worth of writes.  Whenever a write comes in at the over-ten-second mark, 
 > > you write the _v_ attribute to the persistent attribute.  There's an 
 > > order of magnitude improvement.
 > 
 > This sounds like a good solution. Actually, I only have to write to the
 > persited attribute if the object is persisted itself (i.e. in setstate),
 > until then, I'll just add the self._counter and self._v_counter, right?
I would expect, you lose lots of counts with this approach (at least,
if you are not careful):

   Each connection has its own "_v_counter" copy which count
   independent from one another. If one of the parent objects
   is written, the copies of it in the other connections
   are invalidated and later reloaded from the ZODB.
   I expect the original "_v_counter" values are lost.


Dieter