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

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


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

pgpool-II 3.2 において、接続先の DB 名によってコネクション
キャッシュ機能が有効にならものがありました。
ソースコード ("child.c") を確認したところ、DB 名が "template0"、
"template1"、"postgres"、"regression" については、コネクション
キャッシュ機能が有効にならないように読めました。

このことについて、マニュアルを参照してみましたが、記載は見当たり
ませんでした。コネクションキャッシュ機能が有効にならない DB 名に
ついて、マニュアルにも記載があった方が良いのではないでしょうか。

また、"regression" という DB 名についてはユーザが作成できるものであり、
コネクションキャッシュ機能が有効になっても良いのではないでしょうか。


[補足] 確認したソースコード箇所
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 メーリングリストの案内