2011年6月29日

[pgsql-jp: 40832] Re:デッドロックについて

2011/6/29 TAKATSUKA Haruka <harukat@xxxxx>:
>> トランザクション2では不定であるため、
>> ?B→C→D→A

> SELECT FOR UPDATE の一文の動作自体が、各行を順に行ロックしていく、
> というもので、他のトランザクションと並行で動作していきます。

行のロック順序が常には同じにならない理由は、

Postgres が追記型であることも関連しています。
最初は A→B→C→D の物理順で並んでいても、更新すると
順序が入れ替わる場合があるため、ちょうど入れ替わった
タイミングでデッドロックが発生したんだと思います。

説明の補足になれば。

--
Itagaki Takahiro

投稿者 xml-rpc : 2011年6月29日 18:38
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/104844
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。