[pgcluster: 371] random()について

M.Demura m-demura @ neive.co.jp
2004年 6月 17日 (木) 13:28:27 JST


いつもお世話になっております。ネイブの出村でございます。

現在、PGCluster1.0.7RC3にて検証作業中です。random()がいつも同じ
戻り値を返すという現象を発見しましたので、お知らせします。

とりあえず、こちらに固有の現象なのか確認したいと思っておりますが、
どなた様か、同様の現象を御存じの方いらっしゃいますでしょうか?

まず、環境を説明します。
サーバー       ノード        ポート  ソフトウェア
Cluster1       hostA         5433  PGCluster 1.0.7rc3
Cluster2       hostA         5434  PGCluster 1.0.7rc3
Cluster3       hostB         5435  PGCluster 1.0.7rc3
replicate      hostB         8777  PGCluster 1.0.7rc3
lb             hostA         5432  PGCluster 1.0.7rc3
standalone     hostC         5433   PostgreSQL 7.3.6

なお、OSはすべてVine Linux 2.6R4となっております。
PGClusterのconfigure option は次のとおりです。

./configure \
  --prefix=/usr/local/pgcluster-1.0.7rc3 \
  --enable-nls \
  --with-maxbackends=256 \
  --with-openssl=share

また、postgresql.confでデフォルトから変更した部分は、

max_connections = 64
shared_buffers = 128
max_fsm_pages = 20000

です。

次に現象を説明します。
いま、上記以外の端末から、psqlで接続して、

select random();

なるクエリを hostA:5432に投げますと、
毎回同じ値

0.84018771715471

を返します。
確認のため、同じクエリをhostA:5433に投げますと、
毎回同じ値

0.8401877175471

を返します。

対比として、同じクエリをhostC:5433に投げますと、毎回ランダムな値
を返します。

上記の構成で、replicateを止めたうえ、hostA:5433に同じクエリを
投げますと、やはり、同じ値

0.84018771715471

を返します。同じくreplicateを止めたまま、hostB:5435にも同じクエリ
をためしますと、同じ値

84018771715471

を返します。

接続方法は、端末からpsqlと、ODBC経由をためしましたが、結果は同じ
でした。接続をやりなおしても同じ値がでるようです。
postmasterの再起動はためしていません。

よろしくお願いいたします。
--
/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄  Motokuni Demura
_/_/_/_/_/_/_/  NEIVE.co.ltd http://www.neive.jp/



pgcluster メーリングリストの案内