[pgpool-general-jp: 154] Re: pgpoolでのupdateについて

Yoshiyuki Asaba y-asaba @ sraoss.co.jp
2007年 6月 4日 (月) 10:10:10 JST


浅羽です。

From: "Mizuno Shinya" <098.mizuno.shinya @ gmail.com>
Subject: [pgpool-general-jp: 153] pgpoolでのupdateについて
Date: Sat, 2 Jun 2007 10:51:51 +0900

> 現在、pgpool-3.2でwebシステムを構築中ですが、
> pgpoolを利用した際の「update」について、確認をしたいことがあり、
> MLへポストいたしました。
> 
> A) update table1 set value=100 where id=1
> B) update table1 set value=200 where id=1
> 
> この二つのクエリが別トランザクションで同時に実行された場合、
> 最終的に「value」の値はどのようになるのでしょうか。

マスタで先に行ロックを獲得したトランザクションが先に UPDATE を実行しま
す。これは replication_strict = true の場合のみです。

replication_strict = false の場合は順番は保証されず、さらにデッドロッ
クする可能性があります。


> 「insert」のとき、各クラスタではクエリの順番は保証されない、
> ということで、ロックを利用する方法が上げられています。

INSERT の場合は新規に行を挿入するために行ロックが存在しないため、テー
ブルロックを獲得する必要があります。

--
Yoshiyuki Asaba
y-asaba @ sraoss.co.jp


pgpool-general-jp メーリングリストの案内