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

Mao Morimoto yneko2 @ yamamaya.com
2004年 2月 19日 (木) 23:49:36 JST


もりもとです。

> 僕の経験では、ファイルIOが発生するのがかなりCPUに負荷がかか
> ると思い、DBへ直接書き込む方法を取ってました。
> 上記のやり方は、ある時期までファイルへ書き込み、夜間などにバッチ
> でDBへ書き込むのでしょうか。

バッチで、ではなくて、データがリアルタイムで順次追加されていくファイル(私の
システムの場合Webサーバのログファイル)を、順次マイペースでDB側が読み込ん
で処理する、という形です。具体的には・・「tail -f」コマンドの出力をパイプで
受け取ってDB側に渡しているだけです。ペースの調整はパイプのバッファがやって
くれます。(ちなみに、ログをはき出すサーバと、DBは別サーバです)
データが集中してくると最大で5分くらいDB側が遅れたことがありますが、通常は
数秒程度の遅れでついてきてます。

ファイルのロックは・・今時のカーネルなら、flockを信用しても問題ないのではな
いでしょうか。。

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

- Mao Morimoto
Web site: http://yamamaya.com/
Blog    : http://blog.yamamaya.com/




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