Hello all,for Optimistic Locking, I believe
the implementation is like this:
rails will issue the following statement to database
Update user set name="a",version=2 where id=1 and version=1
but the problem is, generally database will have transaction Isolation
(I believe Oracle do),
so when Thread 1 issue that statement to database but not commited,
Thread 2 will also issue that statement to database, because transaction
Isolation,
thread 2 will not see this user as version 2 but still version 1(unless
thread 1 commited)
(otherwise thread 2 is reading uncommitted which is not correct),
then thread 1 commit, thread 2 commit,
then all of a sudden, all threads are happy, the user record is still being
modified by
two threads, the optimistic locking doesn't work,

Is this correct?
Correct me if I'm wrong.
-- 
http://hi.baidu.com/femto
https://github.com/femto

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CAJGhtu%3DWxUsnL0nmh1hFmJpG_SqStNyE11iDtb2-A76VDGnbMw%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to