[pgpool-general-jp: 18] Re: childprocessとconnection
    koyama
    mlus @ hintmark.com
       
    2006年 10月 18日 (水) 02:41:08 JST
    
    
  
xeon-koyamaです
浅羽さん、ご返答ありがとうございます。
>> 認識2
>>   接続を許可されたクライアントは、connection_poolの max 値まで、
>>   同時に、SQL操作を行う事ができるが、最大値を超えた場合は、処理を終えた
>>   一番古いconnection が再利用される。
> 
> ちょっと、ここが違うかもしれません。max_pool は各プロセスがキャッシュ
> を持つことができる最大の数になります。キャッシュを識別する情報は
> 
>   1. プロトコルバージョン
>   2. 接続ユーザ名
>   3. データベース名
> 
> になります。この 3 つの情報が一致した場合に、キャッシュされたコネクショ
> ンを再利用することができます。言い換えると、ユーザ名やデータベース名が
> 頻繁に変わるような接続があるシステムの場合、pgpool によるコネクション
> キャッシュがあまり有効になりません。
> 
> 例えば、max_pool = 4 の場合、
> 
>   dbname=A, username=X, version=30
>   dbname=B, username=X, version=30
>   dbname=C, username=X, version=30
>   dbname=C, username=Y, version=30
理解できました。ありがとうございます。
私のケースの場合、2パターンのクライアントがありまして、
1つは、libpq 経由の接続で、クライアントは SJISです。
もう1つは、jdbc接続で、クライアントは UTF-8 です。
libpq の方は、毎回接続・切断を繰り返すのですが、1度の接続で
長時間 SQL操作を行うので、頻度は高くありません。
jdbcの方は、短時間でのSQL操作で、頻繁に接続・切断を繰り返しますが、
クライアントの方で,connection pool を保持していますので、
pgpoolから見れば、接続しっぱなし に見えると思います。
いろいろ教えて頂き、ありがとうございます。
とりあえず
  初期化childプロセス= 64
  max_pool=6
程度から初めてみます。
    
    
pgpool-general-jp メーリングリストの案内