[pgcluster: 476] Re: av12のご報告およびロードバランサの質問です。

AOSHIMA Kentaro pgcluster@ml.postgresql.jp
Tue, 10 Aug 2004 12:42:08 +0900


三谷様
皆様

このたびは大変お世話になります。
青嶋と申します。

お忙しいところ質問への回答ありがとうございました。

1.0.7(安定版)では、backendがNULLの場合に対する
ClusterTblへのERROR処理が無かったので、
レプリケーションが行われない状態でした。
av12では、該当のクラスタDBへのERROR処理がございましたので、
2回目以降は該当クラスタDB以外への接続を確認いたしました。
確認不足で申し訳ありませんでした。

一回目のみの接続エラーに関してですが、
私が知っております商用のクラスタソフトでは、
アクト-スタンバイの形式をとっていますので
切替中においてクライアントから接続ができない状態になってしまいます。
PGClusterの場合は、アクト-アクトとして動作可能であり、
クラスタDBが一台停止した場合でも、
接続可能なクラスタDBへロードバランサが振分け処理を行うことができる、
という利点があるかと思います。
”レプリケーションが行われない間に接続した最初のクライアント”であっても、
必ず接続可能なクラスタDBへ振り分けることができるというのは重要な
フェイルオーバ機能の一つになるかと思います。

child.cのPGRdo_child(line:322)において、
backendがNULLの場合、ClusterTblにTBL_ERRORを設定しておりますが、
その後、再度cluster_table.cのPGRscan_clusterを呼び出して、
backendへの接続処理を行えば使用可能なクラスタDBへ接続できるのかなと
思っています。

大変長々と書いてしまいまして、恐れ入ります。
また、いつも迅速なご対応いただきまして、ありがとうございます。




> 三谷@広島です.
> 
> ようやく戻ってきました.
> # うー,肩こった〜.
> 
> > 【av12のご報告】
> > av12におけるリカバリ機能の検証を行いました。
> > 構成は以下の通りです。
> > 
> > ロードバランサ 1台
> > クラスタDB    2台
> > レプリケーション 1台
> > (RedHatEL AS3.0、PGCluster:1.0.7av12)
> > 
> > クラスタDBそれぞれにおいて、停止、リカバリを行いました。
> > リカバリが正常であることが確認できましたのでご報告致します。
> 検証および報告頂き,ありがとうございました.
> 
> > =質問=
> >  クラスタDBが停止後、レプリケーションが行われる前に、
> >  クライアントから接続が生じ、かつ接続先が停止している場合は、
> >  上記の事象になってしまうように思われます。
> >  そこで、ロードバランサが稼働率により負荷分散先に接続を試みた際、
> >  応答がない場合は、ロードバランサの該当ClusterTblのステータスを
> >  Errorとし、再度、使用可能なTblをScanし直すことは可能でしょうか?
> 現状の作りでは,初期エラー検知の場合の再接続ですね.
> コネクションプーリングを使っていなければ,可能かもしれません.
> 1回でもエラーになるのはマズいですか?
> 
> =============================
> 三谷 篤<mitani@sraw.co.jp>
> =============================

青嶋 憲太郎
aoshima.kentaro@nttcom.co.jp