[pgpool-general-jp: 187] Re: 大量のINSERTを行うとデッドロックする

Yoshiyuki Asaba y-asaba @ sraoss.co.jp
2007年 7月 5日 (木) 11:19:41 JST


浅羽です。

From: "igarashi @ motion.co.jp" <igarashi @ motion.co.jp>
Subject: [pgpool-general-jp: 186] Re: 大量のINSERTを行うとデッドロックする
Date: Mon, 02 Jul 2007 19:45:40 +0900

> > 3.2 から 3.3 までと 3.3 以降もさらにいくつか不具合を修正しております。
> > 最新の CVS HEAD で動かした場合にはいかがでしょうか?
> 
> SELECT文をレプリケーションして使用したいのですが、3.3からはコメント文を
> 入れないとSELECT文はMasterにのみ送信されるとのことでした。
> 修正量が膨大なため、現在3.3への更新を見送っております。
> 
> 3.3ではコメント文を入れる以外に、SELECT文をレプリケーションさせる方法は
> ありますでしょうか。

添付のパッチを適用していただければ、常に SELECT をレプリケーションさせ
ます。

ただ、3.3 の仕様変更で困っている方が結構いらっしゃるので、仕様を見直そ
うかと考えています。以下のどれかを考えていますが、要望がありましたらお
知らせください。

  1. SELECT をレプリケーションするかしないかの挙動を設定ファイルで選択
  2. 関数名(nextval など)を登録して、関数呼び出しがあるものはレプリケー
     ション
  3. FROM 句のないものはレプリケーションさせる
  4. target リストに関数呼び出しがあるものはレプリケーション

--
Yoshiyuki Asaba
y-asaba @ sraoss.co.jp
-------------- next part --------------
Index: pool_process_query.c
===================================================================
RCS file: /cvsroot/pgpool/pgpool/pool_process_query.c,v
retrieving revision 1.49
diff -c -r1.49 pool_process_query.c
*** pool_process_query.c	2 Jun 2007 00:51:54 -0000	1.49
--- pool_process_query.c	3 Jul 2007 06:13:00 -0000
***************
*** 2966,2971 ****
--- 2966,2973 ----
   */
  static int is_select_query(char *sql)
  {
+ 	return 0;
+ #if 0
  	if (pool_config.ignore_leading_white_space)
  	{
  		/* ignore leading white spaces */
***************
*** 2974,2980 ****
  	}
  
  	return (!strncasecmp(sql, "SELECT", 6));
! 
  }
  
  /*
--- 2976,2982 ----
  	}
  
  	return (!strncasecmp(sql, "SELECT", 6));
! #endif
  }
  
  /*


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