[ZODB-Dev] Re: false write conflicts

Casey Duncan casey at zope.com
Tue Mar 2 09:15:04 EST 2004


On Mon, 01 Mar 2004 23:42:55 -0500
John Belmonte <john at neggie.net> wrote:

> Casey Duncan wrote:
> > Are you using augmented assignment operations with the subobjects?
> > At some point the object in question is being marked as changed. It
> > might be worthwhile to instrument ZODB to tell you when the object
> > is being marked changed (and added to the transaction). That'd be
> > one way to track it down.
> 
> I am using augmented assignment, does that cause problems?

Augmented assignment causes a setattr on the containing object. This is
the way Python works. These examples are semantically equivilant::

  self.x += 1
  self.x = self.x + 1
  setattr(self, 'x', self.x + 1)

They all cause self to be modified through __setattr__. If self is a
persistent instance then it will be marked changed in all three cases
above.

-Casey




More information about the ZODB-Dev mailing list