[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を含む場合は使えない。
- バージョン番号、後付は難しい。