[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 11110] Version numbe rパターンは遅い



version numberパターンは、SERIALIZABLEアクセスの
の楽観的並行制御の一実装形態だが、
SERIALIZABLEにしなくてはロールバックできなくなるので
パフォーマンスが出ない、2相コミットできるDBなら
"select for update" で普通にアクセスして
最後に"commit"したたほうが無難
これは2相コミットのないDB(mySQLとか)上に
2相コミットを実現するためのパターン
だと見ました。

根本



以下3月の議事録より
-------------------------------------------------------
■ P92 Version Number(更新先データの整合性確認)より
 - サーバ側の最新データに基づいての確認
   -> 確認の結果データが違っていたら、通例ユーザ例外をスロー。
 - 楽観的並行制御(Optimistic Lockingの訳)- CVSでも使われている。
 - EJBのreentrant Yes とされているケースは見たことがない。
 - バージョン番号以外の実装例 - タイムスタンプ プラス 乱数等もあり。
 - 独立性レベルとはJDBC で指定するアイソレイション・レベルのこと。
 - バージョン番号を使わず、全項一致のwhere句を書く手もあり。
   -> ただこれはBLOBを含む場合は使えない。
 - バージョン番号、後付は難しい。