curator-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Blum <dragonsi...@gmail.com>
Subject Re: SharedValue, how does it work?
Date Wed, 01 Oct 2014 21:18:52 GMT
On Wed, Oct 1, 2014 at 5:10 PM, Jordan Zimmerman <jordan@jordanzimmerman.com
> wrote:

> But how would a client of SharedValue know they had the latest "base"
> value on which to compute an update value?
>
> You would try to change the value and, if it returns false, you read the
> value again.
>
I don't think this actually happens, is the problem.  The event sequence
looks like this:

1) User calls sharedValue.getData() to get value A.

2) Server records a value change to B

3) SharedValue.readValue() runs, updating sharedValue internal state to B.

4) Meanwhile user computes  A -> A'.

5) User calls sharedValue.trySetValue(A').  This succeeds because
sharedValue thinks it's up to date; it has no idea that the user is setting
a value based on old data.


By contrast, DistributedAtomicValue.compareAndSet(A, A') would have failed
because it can explicitly compare the user's snapshot of the previous state.

Mime
View raw message