[pgpool-general-jp: 326] Re: 答えが変わる

Tatsuo Ishii ishii @ sraoss.co.jp
2007年 12月 25日 (火) 16:37:30 JST


石井です。

> 陶山です。
> 
>  pgpool を思いどうりに動作させられなくて四苦八苦です。
> 
>  いろいろ問題はあるのですが、そのひとつ。
> 
>  ◆テスト条件
> 
>  postgresql は、2台(main とsub)で稼動。
>  pgpool は、そのうちの1台 main で稼動。レプリケーションモード
>  bench_replication DBを作成し、pgpool 経由でbranches 表にデータを
> 1行挿入。
>  そのあと、pgpool を通さずに main で、main 内の bench_replication の
> branches 表だけにさらに1行追加。
>  その結果、 main では、3行。sub では2行(この2行は main と一致)。
> 
> 
>  ◆テスト実施
>  
>  sub から psql -h main -p mport bench_replication で接続し、
>   SELECT * FROM branches; では2行しか見えない。このとき main で同じ
> ように psql -p mport bench_replication で接続してみると、同じように
> 2行しか見えない。
> 
>  ともに一旦psql を終了し、今度は main で同じ事をやるとなぜか今度は
> 3行見える。それでそのまま subでも同じ事をやってみると今度は3行見え
> る。
> 
> 
>  ◆問題

"mport"っていうのが何を指すのかよく分かりませんが,pgpoolのポートを指
していると仮定します。

>  なぜ、2行しか見えなかったり、3行見えたりするのかわかりません。
>  (データを信頼できなくなりますね。)

ロードバランスがオンになっているからでしょう。

>  そして、main と sub でDBに食い違いがあるにもかかわらず、表にはエラー
> が出てきません。

psql -h main -p mport bench_replication して,

BEGIN;
SELECT * FROM branches;

とすれば,ロードバランスしないので,エラーを検出するはずです。
--
Tatsuo Ishii
SRA OSS, Inc. Japan


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