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