Jan-Ole Esleben wrote:
Yes. You said "different sets of data". That reasonably means
different objects. If it doesn't, yuo need to take a long hard look at
your object hierarchy.

Simply not true. What if I have a field titles (that is a hash of
titles to Book objects)
and a field comments (that is an array of comments on the library)? Is
that so obviously not a sane example?

You have to understand the Zope persistence mechanism if you want to have write access to subparts of an objects in parallel transactions not cause write conflict errors.

Basically, if you want to have that, your object can't be a single persistent object, but be composed of different persistent subobjects.

See the example for some major implicitness. It's also implicit
because you have no control over what a transaction considers a
tainted object. (You have no real control over the transaction).

Of course you do. An object is "tainted" either if it's Persistent and one of its attribute is updated, or if it's not Persistent and reachable from a Persistent object that got "tainted". "Persistent" means a subclass of persistence.Persistent.

If you have two different processes changing the same set of data, you
will get confllict errors. You claim that you will not, but this is

I am explicitly talking about changing different sets of data within
the same object. You noted that above yourself.

If you want that, again, then your "different sets of data" have to be designed using the Persistent base class. PersistentList and PersistentMapping are examples.


Florent Guillaume, Nuxeo (Paris, France)   Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]
Zope maillist  -  Zope@zope.org
**   No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to