> read-1
> read-2
> write-2
> write-1
>
> ...so any changes #2 makes are lost.

I think this sequence is okay, as long as the write's are atomic and
they use up-to-date information.

It would be undesirable for read-1 to extract a variable and to update
it with write-1.  But if write-1 manipulates variables atomically,
then we  don't problems.  Consider a simple example with a counter
like this.


a = read-1
b = read-2
write-2.update(counter = counter + 1, a = "hello")
write-1.update(counter = counter + 1)

We don't have any problem.  I think databases automatically take care
of these synchronization.  Even if process 1 does  something with "a",
after process 2 modifies it.  Conceptually, that should be okay.
Information process 1 gets is stale, but that's life.

I don't think this is a problem either:

>>A database ... would not automatically handle locking
>>while an application function is potentially manipulating the session (prior
>>to updating it in the database).

Reply via email to