[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 メーリングリストの案内