[pgsql-jp: 32340] Re: 数万アクセスに対する対処について

Kazuaki Kimura kazubonbonk @ yahoo.co.jp
2004年 2月 20日 (金) 21:40:54 JST


こんにちは、木村といいます。
待ち行列についての趣味的な話を書きます。

> どうしても心配なら、メッセージキューを使うという方法も
あると思います。メ
>> セージキューのFIFOのサイズが小さいので、DB側の処
理が追いつくまで上
> 流側
> が待たされることになりますけど、ロックの心配も皆無です
。

私もWEBからのユーザー登録、アンケート、問い合わせシステ
ムをPerlで作成しました。Postgresへの登録もPerlを使ってい
ます。
WEBサーバーとPosgresサーバー間は、IO::Socketを使っていま
す。WEBサーバーはSUNで、PostgresはLINUXですが問題なく通
信できています。
WEBサーバーからは、Perl CGIが登録データを独自のパラメー
タ形式で送っています。Postgresサーバー側では、Perlスクリ
プトがパラメータを解析し、DBD::Pgを使って登録しています
。登録が終われば、WEBサーバーにOKのメッセージを返します
。
このPerlで作ったサーバーソフトは、常にDBをオープンしっぱ
なしです。
この方式のメリットは、
1.Postgresサーバー上でfork,execが発生しない。
2.TCP/IPプロトコルが勝手にリトライして待つ行列を作るの
で、WEBサーバー上のCGIのタイムアウト値を30秒にしておけば
エラーが発生しない。
お金と時間がないので、全てPerlで作りましたが、パフォーマ
ンスが必要であれば、Cで作ればと思います。
私は元々クライアントが直接RDBサーバーにアクセスするのは
、SQLのコードが色んなソースファイルに分散するので嫌いで
す。SQLを知っていればいいのは、開発チームの中で一人だけ
で十分だと思っているからです。凝ったコーディング、凝ったSQL
は後々始末が悪いと思っています。
気を悪くした人がいたら、すいません。

__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/




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