Re: [站內] 找工作真的很難
※ 引述《adrianshum (Alien)》之銘言:
: ※ 引述《Lordaeron (Terry)》之銘言:
: : 哇, 有這種狀況的話, 也是看你怎麼design 而已.
: : 如果update sql 只update 你要update 的field, 就無所謂
: : concurrency 問題了.
: 那就是我所謂 transactional based
: 但我提到的情況在 *實際* 工作上有很多.
: : 不然你的做法也很 update 前先check sequence, 再query
: : 回現在的資料, 最combine, 再update 這樣嗎?
: combine 等並非必要.
: 一般 optimistic concurrency strategy
: 在同時 update, 後 update 者都只是 throw 出
: exception 來提醒 data image outdated. 要
: merge 要怎樣是再之後的事
: 但至少人家已經幫你做了 date image outdate
: checking, 你明白價值在哪裡嗎?
: : 有沒有starvasion 的問題呢? 問題不就搞得比較複雜了?
: 有複雜嗎?
: 你可以選擇 case-by-case 去想怎樣handle, 或者自己
: 再去想一個 mechanism 去 handle. 但framework 提供了
: 一個 proven way 去解決這樣的問題, 除非你的情況很特
: 殊否則幹嗎要自己要花時間去設計和寫相關的部份?
: Alien
一向都是自己寫啊?
transaction based 的, 有一堆queue 可以用, 套就好了.
你講的case, 要是一直出現outdate,
很容易出現starvation, 要是真的有此需要
就讓它只update 被update 的field 吧.
如果連update 的field 都會交錯, 就給它row lock 就好了.
db 不能row lock 就算己來個OBJECT 專門負責select 和update 的, 連
outdate 都不會出現, 直接告訴user <你要修改的資料已被lock>
沒哪麼不好寫吧.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.79.232
討論串 (同標題文章)