[pgpool-general-jp: 1139] Re: コネクションキャッシュ機能が有効にならない DB 名について

Hidenori Saitoh saitoh_hidenori_b1 @ lab.ntt.co.jp
2013年 3月 1日 (金) 10:45:00 JST


石井様
齋藤です。お世話になっております。

早速のご回答どうもありがとうございます。

pgpool-II の テスト用に regression データベースの
コネクションキャッシュが無効になっている点について
理解しました。

マニュアルへの追記等、お手数をお掛けして申し訳ございませんが、
よろしくお願い致します。

(2013/03/01 10:31), Tatsuo Ishii wrote:
> 石井です。
> 
>> 齋藤です。お世話になっております。
>>
>> pgpool-II 3.2 において、接続先の DB 名によってコネクション
>> キャッシュ機能が有効にならものがありました。
>> ソースコード ("child.c") を確認したところ、DB 名が "template0"、
>> "template1"、"postgres"、"regression" については、コネクション
>> キャッシュ機能が有効にならないように読めました。
> 
> はい、その通りです。
> 
>> このことについて、マニュアルを参照してみましたが、記載は見当たり
>> ませんでした。コネクションキャッシュ機能が有効にならない DB 名に
>> ついて、マニュアルにも記載があった方が良いのではないでしょうか。
> 
> はい、ご指摘の通りですね。マニュアルに追加します。
> 
>> また、"regression" という DB 名についてはユーザが作成できるものであり、
>> コネクションキャッシュ機能が有効になっても良いのではないでしょうか。
> 
> 難しいところですね。regressionデータベースでコネクションキャッシュが無
> 効になっているのは、regression testをpgpool経由で確認できるようにするた
> めです(詳細は覚えていないのですが、regressionを実行する上で不都合があっ
> てそうしました)。
> # regressionデータベースがコネクションキャッシュの対象にならないのは、
> # pgpoolができた時からそうなっています。
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese: http://www.sraoss.co.jp
> 
>> [補足] 確認したソースコード箇所
>> child.c:
>>
>> 	/*
>> 	 * do not cache connection if:
>> 	 * pool_config->connection_cahe == 0 or
>> 	 * database name is template0, template1, postgres or regression
>> 	 */
>> 	if (pool_config->connection_cache == 0 ||
>> 		!strcmp(sp->database, "template0") ||
>> 		!strcmp(sp->database, "template1") ||
>> 		!strcmp(sp->database, "postgres") ||
>> 		!strcmp(sp->database, "regression"))
>> 	}
>> 	else
>> 	{
>> 		POOL_STATUS status1;
>>
>> 		/* send reset request to backend */
>> 		status1 = pool_process_query(frontend, backend, 1);
>> 		pool_close(frontend);
>>
>> 		/* if we detect errors on resetting connection, we need to discard
>> 		 * this connection since it might be in unknown status
>> 		 */
>> 		if (status1 != POOL_CONTINUE)
>> 		{
>> 			pool_debug("error in resetting connections. discarding connection pools...");
>> 			pool_send_frontend_exits(backend);
>> 			pool_discard_cp(sp->user, sp->database, sp->major);
>> 		}
>> 		else
>> 			pool_connection_pool_timer(backend);
>> 	}
>>
>>
>> 以上です。よろしくお願い致します。
>> _______________________________________________
>> pgpool-general-jp mailing list
>> pgpool-general-jp @ sraoss.jp
>> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
> 


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