[pgpool-general-jp: 113] Re: notice_backend_error(1) in do_child()

Jun Kuriyama kuriyama+ml @ s2factory.co.jp
2007年 4月 16日 (月) 13:07:39 JST


At Sun, 15 Apr 2007 20:30:57 +0900 (JST),
Tatsuo Ishii wrote:
> > ノード間でデータが不一致になったときには,一般的にはどのノードが正しく
> > て,どのノードが間違っているかを確実に断定する方法はありません.考えら
> > れる方法としては,
> > 
> > 1) master node(上の例で言うと,node id = 0)を正しいものと信じて一致し
> >    ないnodeを切り離す
> > 
> > 2) 各nodeの結果を比較し,多数派を正しいものとし,それ以外のnodeを切り
> >    離す
> > 
> > の2つがあります.今考えているのは,基本的に2)で判断し,それができない
> > 場合(ノード数が偶数でかつ判断が分かれたとき)は1)の基準を採用する,とい
> > う方法です(TODO項目).
> > 
> > ちなみに現在のpgpool-IIで,kind mismatchのときに切り離すnode idが1に固
> > 定されているのは,たぶんnode数が2までのpgpoolのコードをそのまま持って
> > きたからで,node数が3つ以上だとこのような現象になってしまいます.つま
> > りバグですね.ちょっと対策を考えてみます.
> 
> 多数決はちょっとすぐには実装が難しいので,1)を実装しました.
> CVS HEADか,以下のパッチを試していただけるでしょうか?

 おお、ありがとうございます。

 これで想定通りの挙動になりました。master node が間違っていたときはさ
すがにどうしようもないのですが、結局不一致が起こった場合には人間が手で
確認して復旧する、とする以外安全な方法は無いような気がしますので、これ
で今の所はやってみようと思います。

# ついでに先ほど pgpool-II 1.0.2 (with this patch) を FreeBSD の ports
# に commit しておきました。:-)


-- 
Jun Kuriyama <kuriyama @ s2factory.co.jp> // S2 Factory, Inc.
               <kuriyama @ imgsrc.co.jp> // IMG SRC, Inc.
               <kuriyama @ FreeBSD.org> // FreeBSD Project


pgpool-general-jp メーリングリストの案内