logo       

Re: conflict resolution for PersistentList: msg#00110

web.zope.zodb

Subject: Re: conflict resolution for PersistentList

>
> Are you sure that the conflicts you care about are in this parent
> object? Without knowing anything about your application logic, I would
> guess that items is modified more often than its parent. If so, you
> need an _p_resolveConflict() method on items, not on the parent. You
> could accomplish that by subclassing PersistentList and adding the
> _p_resolveConflict method.

The problem is that the list of items itself creates the conflict - in my
older post I said that the list of items in parent is modified concurrently -
new items are created and appended to the list. Then the conflict arises
inside the list itself.

Having a _p_resolveConflict on UserList didn't help me as it doesn't get
called, while having one at Parent gets called but contains the pickled
version as state - nothing I can work with.

Maybe the solution to this problem is to use a mapping as storage, not a list,
and a synchronized key generator - bet what happens when two mappings like
this:

{0: OldItem, 1:OldItem, 2: NewItem, 4: NewItem}
{0: OldItem, 1:OldItem, 3: NewItem, 5: NewItem}

are commited after each other? OldItem shall denote that the item has been in
the mapping before the current tratnsaction.

Regards,

Diez

_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list - ZODB-Dev@xxxxxxxx
http://mail.zope.org/mailman/listinfo/zodb-dev



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise