[pgcluster: 423] now()の値が1トランザクション遅れて同期される

Wataru Oguro oguro @ zenrin-datacom.net
2004年 7月 23日 (金) 15:34:22 JST


oguroです。

三谷様、リリースご苦労様でした。
早速試させていただいております。

[pgcluster: 416]、[pgcluster: 417]で報告した件についてはav8でも再現する
ようです。
もう一つ不思議な挙動を見つけたのでご報告させていただきます。

・RedHatLinux7.3(クラスタサーバ2台、レプリケーションサーバ1台)
・PGCluster1.0.7av8

上記環境で、now()を含む更新系クエリーを発行すると、now()の値が1トランザクション遅れて同期しています。
(説明が難しいです・・・・。 rc6でも同様の現象が見られます)
明示的なトランザクションで括ると、now()はレプリケーションされないようです。(以前はできていましたよね

具体的な手順は以下の通りです。

*クラスタサーバ1がマスタです

 1.DBへ接続(クラスタサーバ1、2両方)
  psql test

 2.テーブルを作成(クラスタサーバ1 or 2)
  create table test2( a timestamp );
  
 3.クエリーを発行(クラスタサーバ2)
  insert into test2 values(now());

 4.test2のデータを確認(クラスタサーバ1、2)
  select oid,* from test2;

  /* クラスタサーバ1の結果 */
    oid   |             a
  --------+----------------------------
   123852 | 2004-07-23 15:06:50.617226
  (1 row)

  /* クラスタサーバ2の結果 */
    oid   |             a
  --------+---------------------------
   123855 | 2004-07-23 15:12:41.11233
  (1 row)

 5.クエリーを発行(クラスタサーバ2)
  insert into test2 values(now());

 6.テーブルのデータを確認(クラスタサーバ1、2)
  select oid,* from test2;

  /* クラスタサーバ1の結果 */
    oid   |             a
  --------+----------------------------
   123852 | 2004-07-23 15:06:50.617226
   123853 | 2004-07-23 15:12:41.11233 *****ここと
  (2 rows)

  /* クラスタサーバ2の結果 */
    oid   |             a
  --------+---------------------------
   123855 | 2004-07-23 15:12:41.11233 *****ここ
   123856 | 2004-07-23 15:16:24.63538
  (2 rows)

私の環境だけかもしれませんので、どなたかお手すきの方おられましたらお試しいただけませんでしょうか。。。






pgcluster メーリングリストの案内