durusmail: durus-users: Re: A question about consistence in durus
A question about consistence in durus
2006-04-21
2006-04-21
2006-04-21
2006-04-21
Re: A question about consistence in durus
2006-04-22
2006-04-22
2006-04-22
2006-04-22
2006-04-22
2006-04-23
2006-04-23
2006-04-23
2006-04-23
2006-04-23
2006-04-23
Re: A question about consistence in durus
David Binger
2006-04-22
On Apr 22, 2006, at 3:23 PM, Jesus Cea wrote:

>
> Neil Schemenauer wrote:
>>> So does Durus Storage Server give a "degree 3 isolation"?. That
>>> would be
>>> a very good point.
>>
>> If it doesn't then there is a bug.  Each client remembers the OIDs
>> of objects it has seen during a transaction.  When the client tries
>> to commit, it first receives a set of invalid OIDs from the server
>> (OIDs for objects that have been changed in the DB).  If any of
>> those OIDs have been seen then a conflict error is raised.
>
> Uhmmm. I'm confused.
>
> I think durus will raise a conflict if you have the remotely modified
> object in your cache, EVEN if you didn't accessed that object in
> current
> transaction. Some experiments seems to confirm that idea. I think this
> is an issue to improve in future Durus releases. That is, "false"
> conflicts.

When Neil says "seen" here, he does not mean "accessed".
The loaded_oids set is the set of oids of objects that have had
the state present in memory at some point since the last transaction.

The current Durus policy is conservative, in that it assumes that any
object
that has had the state present at some point since the last
transaction might possibly have
been used to make decisions about what to commit.

You are correct that we could track actual accesses since the
last transaction, and use that to decide if we can avoid a
ConflictError.
I think that would require a little extra work on every
attribute access of a persistent instance.  Would the benefit
be worth the cost?  The answer is not obvious to me.















reply