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