2010年2月17日

[pgsql-jp: 40180] Re:子テーブルの2回目の更新でデッドロック


HIRATSUKA Sadao <sh2@xxxxx> wrote:

> Tom Laneさんから以下の返事をいただきました。
>
> | AFAICS there is no simple way to improve this. It's an optimization
> | that the first update didn't block. We can't easily extend that
> | optimization to the second update. Sorry.

>
> まとめると
> ・アーキテクチャ上の制限
> ・8.5devでもこの制限はあり。8.3も再現しました

最初にお伝えした情報が間違っていました。すみません。
昔からある制約のようです。

> ・簡単には改善できない。ブロックしないための情報を保持する場所が今のところない
> ・初回の更新がブロックされないのは特別扱いしているため

「同一トランザクションで同じ行を何度も更新する」用途はあまりないとは思いますが、
今回の外部キーの制約だけでなく、HOT のゴミ回収も効かなくなるため、
このパターンでの更新を一度に多く行うのはできれば避けたいですね。

------------------------------------------------------------
NTT オープンソース ソフトウェア センタ
板垣貴裕 <itagaki.takahiro@xxxxx>

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




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