[ZODB-Dev] Serializability

Jim Fulton jim at zope.com
Mon Aug 20 10:32:15 EDT 2007


On Aug 19, 2007, at 9:34 AM, Dieter Maurer wrote:

> Analysing the STICKY behaviour of 'Persistent', I recognized
> that 'Persistent' does not customize the '__getattr__' but in fact
> the '__getattribute__' method. Therefore, 'Persistent' is informed
> about any attribute access and not only attribute access on a
> ghosted instance.
>
>
> Thogether with the 'accessed' call in Jim's proposal
> "http://wiki.zope.org/ZODB/DecouplePersistenceDatabaseAndCache",
> this could be used for a very crude check
> of potential serializability conflicts along the following
> lines.
>
>   The DataManager maintains a set of objects accessed during a  
> transaction.
>   At transaction start, this set is empty and all cached objects
>   are in state 'Ghost' or 'Saved'.
>   Whenever an object is accessed for the first time, the DataManager's
>   'accessed' or 'register' method is called. In both cases,
>   the manager adds the object to its accessed set.
>   At transaction end, the manager can check whether the state of any
>   of its accessed objects has changed in the meantime. If not, no
>   serializability conflict happened. Otherwise, a conflict would be
>   possible (provided the transaction changed any objects).

Yup. I'd like someday to provide this sort of check as an option.

> The test is very crude, as it does not track whether the tracked
> transaction's change really depends on one of the objects
> changed by different transactions. We must expect lots
> of "ConflictError"s.

Perhaps.  I would expect more, but whether there are lots will depend  
on the application.

> Application specific conflict resolution
> would become a really difficult task.

I'm sure you realize that application specific conflict resolution  
violates serializability.  I have a hard time believing that someone  
would use this higher-level serializability mode together with  
conflict resolution.  At least not in general.

Jim

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the ZODB-Dev mailing list