[pgsql-jp: 33952] Re: pgpoolの機能に関して
Tatsuo Ishii
t-ishii @ sra.co.jp
2004年 8月 31日 (火) 21:19:04 JST
石井です.
> 色々と悪戦苦闘したのですが、どうしても解決できないので、皆様にご教授でき
> ればと思い、投稿させて頂きます。
>
> 環境
> Fedra core2
> postgresql 7.4.5
> pgpool 2.0.8
>
>
> 構成として、2台のマシンでレプリケーション、とロードバランスをさせたいと
> 思っているのですが、そのロードバランスの方法について質問があります。
>
>
> 参照系sqlはマスターだけにフォワードし、更新系sqlは両方にフォワードする・
> ・・といったことはできるのでしょうか?(ロードバランスではないかもしれま
> せんが・・・)
そういう機能は今のところありませんが,ちょっとソースをいじれば簡単に実
現できます:-) pool_process_query.c の start_load_balance()という関数の
中に,
master = random() % backend->num;
という行があり,ここで乱数を使って参照系SQLをマスタに投げるかセカンダ
リに投げるかサイコロを振って決めています.ここで
master = 0;
とすれば必ずマスタだけに問い合わせが行くようになるはずです.
もっとちゃんとやるのであれば,ロードバランスするときにマスタとセカンダ
リの重み付ができるようにすべきでしょうね.そうすればセカンダリの重みを
0にすることによって同じことがもっとスマートに実現できます.次期メジャー
バージョンアップでは入れようと思います.
> 先日のPHPカンファレンスで石井さんがこういった構成をとれる・・・(私の思
> い違いかもしれませんが)と、ご説明下さったように記憶しています。
もし誤解を与えるような説明があったら申し訳ないです.
--
Tatsuo Ishii
pgsql-jp メーリングリストの案内