[pgpool-general-jp: 1349] Re: pgpool-II_3.4.0の仕様について
Kazuki Uehara
uehara.kazuki @ lab.ntt.co.jp
2015年 2月 3日 (火) 12:31:54 JST
To:石井様
上原です。
お世話になっております。
先日、質問させていただきました以下の内容についてですが、
いかがでしょうか。
pgpoool-IIの仕様について、ご回答いただければ幸いです。
> pgpool-II 3.4.0の仕様についていくつか不明な点があります。
> 下記の内容について、ご教授いただけないでしょうか。
>
> ■1 ドキュメントバグ?
> client_min_messagesの選択範囲にFATAL、PANICがマニュアルに記載されて
> いますが、設定できません。(設定した場合、エラーになります)
> ソースを確認した限り、FATAL、PANICは対象にしていないのですが、
> ドキュメントとソースのどちらが仕様として正しいのでしょうか。
>
> ■2 client_min_messagesが制御するメッセージは何か?
> PostgreSQLからClientに返されるメッセージを制御するものとして考えて
> いましたが、設定を変更しても出力内容に変化がありません。
>
> ソースを確認したところ、そもそも制御が行われていないように見えますが
> いかがでしょうか。whereToSendOutputは初期値'DestDebug'のままで変更
> されることがないため、下記の処理が行われていないという認識ですが、
> 合っているでしょうか。
>
> src/utils/error/elog.c
> 285 /* Determine whether message is enabled for client output */
> 286 if (whereToSendOutput == DestRemote && elevel != COMMERROR)
> 287 {
> 288 /*
> 289 * client_min_messages is honored only after we complete the
> 290 * authentication handshake. This is required both for security
> 291 * reasons and because many clients can't handle NOTICE messages
> 292 * during authentication.
> 293 */
> 294 output_to_client = (elevel >= pool_config->client_min_messages ||
> 295 elevel == INFO);
> 296 }
以上です。
よろしくお願いします。
(2015/01/13 11:09), Kazuki Uehara wrote:
> To:石井様
>
> 上原です。
> お世話になっております。
>
>
>> [1]に対しては、atolで変換前に数字かどうか確認し、数字でない場合はエラー
>> としてpgpool-IIが起動しないようにしました(他の設定項目同様、設定エラー扱い)。
>>
>> [2]に対しては、そもそも空の正規表現を受け付けること自体が間違っているの
>> で、[1]同様設定エラー、pgpool-IIが起動しないようにしました。
>
> ご確認、及びご対応いただきありがとうございます。
>
>
> 以上です。
> よろしくお願いします。
>
> (2015/01/11 10:21), Tatsuo Ishii wrote:
>> 上原様
>>
>> お世話になっています。石井です。
>>
>>> 石井さま
>>>
>>> 上原です。
>>> お世話になっております。
>>>
>>> ご確認いただきありがとうございます。
>>>
>>>>> ■3 redirect_listの内容が不正な場合、ロードバランシングはされない?
>>>
>>> 申し訳ありません。
>>> こちらの条件等の説明が不足しておりましたので、訂正させていただきます。
>>>
>>> お手数をお掛けして申し訳ありませんが、再度ご確認いただけないでしょうか。
>>>
>>> 以下の2パターンでのロードバランシングの挙動を確認した結果は
>>> 仕様どおりのものかご確認いただけると幸いです。
>>
>> 確認しました。
>>
>>> パターン1 database_redirect_preference_list = 'testdb1:abcd&testdb2:1'
>>
>> "testdb1"というDBに対し、"abcd&testdb2:1"というDBノード番号にリダイレク
>> トせよ、という設定と解釈されているようです。
>>
>>> 結果:testdb1へのSQLは全てプライマリで実行される。
>>> testdb2へのSQLはロードバランシングされる。
>>
>> pgpool-IIでは文字列からDBノード番号に変換するのにatolを使っているため、
>> "abcd&testdb2:1"が0に変換され、testdb1に対する負荷分散がすべてプライマ
>> リ(というかノード0)になってしまったようです[1]。
>>
>>> パターン2 database_redirect_preference_list = ':0,testdb2:1'
>>> 結果:testdb1へのSQLは全てプライマリで実行される。
>>> testdb2へのSQLは全てプライマリで実行される。
>>
>> ""を正規表現としてコンパイルする際に、"^"に変換しており(これ自体はバグ。
>> 本当は"^$"に変換したかった)、結果すべてのデータベース名にマッチする正規
>> 表現になってしまい、どんなDBに対する負荷分散でもすべてプライマリ(という
>> かノード0)になってしまったようです[2]。
>>
>> [1]に対しては、atolで変換前に数字かどうか確認し、数字でない場合はエラー
>> としてpgpool-IIが起動しないようにしました(他の設定項目同様、設定エラー扱い)。
>>
>> [2]に対しては、そもそも空の正規表現を受け付けること自体が間違っているの
>> で、[1]同様設定エラー、pgpool-IIが起動しないようにしました。
>> --
>> Tatsuo Ishii
>> SRA OSS, Inc. Japan
>> English: http://www.sraoss.co.jp/index_en.php
>> Japanese:http://www.sraoss.co.jp
>
>
--
上原 一樹 (Kazuki Uehara)
Mail : uehara.kazuki @ lab.ntt.co.jp
Phone: 03-5860-5115
pgpool-general-jp メーリングリストの案内