[pgsql-jp: 33745] Re: usogresでzombie プロセス

mitani mitani @ sraw.co.jp
2004年 7月 23日 (金) 11:44:33 JST


三谷@広島です.

> READMEの書き方が悪いのですが,pgpoolの場合,current_timestampがレプリ
> ケーションの対象になっていないと言うよりは,レプリケーションは一応され
> るけど,マスタとセカンダリの内容で同じタイムスタンプが得られるという保
> 証をpgpoolとしてはしていないということです.ですから,マスタとセカンダ
> リの時計をきっちり合わせれば,結果としてはマスタとセカンダリの内容で同
> じタイムスタンプが得られることになります.
事実上,ミリ秒まで合わせるのは無理ですし,もし合わせることが出来たとして
も,マシンが違う以上,すぐに差が出ると思います.
NTPなどでマシン間の時刻同期を取り続けたとしても,データがINSERTされた瞬
間にマスタの処理が終わってからスレーブにクエリーが投げられますので,
マスタとスレーブに登録される時刻データが同じになる保障はありません.

> このあたりの事情はusogresでもまったく同じだと思います.
同じです.


# 手前味噌ですが

データ登録時のcurrent_timestampの値の整合性が必要であれば,PGClusterを試
されてはいかがでしょうか.

<Cluster Aで実行>
===============================================================
test=# select * from history ;
 tid | bid | aid | delta | mtime | filler
-----+-----+-----+-------+-------+--------
(0 rows)

test=# insert into history VALUES (1,2,3,4,current_timestamp,5);
INSERT 8393340 1
test=# select * from history ;
 tid | bid | aid | delta |           mtime           |   filler
-----+-----+-----+-------+---------------------------+-------------
   1 |   2 |   3 |     4 | 2004-07-22 19:36:09.51107 | 5
(1 row)

<Cluster Bで実行>
===============================================================
test=# select * from history ;
 tid | bid | aid | delta | mtime | filler
-----+-----+-----+-------+-------+--------
(0 rows)

(Cluster AでINSERT実行後)

test=# select * from history ;
 tid | bid | aid | delta |           mtime           |   filler
-----+-----+-----+-------+---------------------------+-------------
   1 |   2 |   3 |     4 | 2004-07-22 19:36:09.51107 | 5
(1 row)

こんな感じになります.

=============================
三谷 篤<mitani @ sraw.co.jp>
=============================





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