[ 検索ページ | 一覧表示 | ツリー表示 | MLトップ | トップページ ]
[comu-ml 0166] Re: DB接続の持続的接続オプション

習田さん,

大河内です.

>
>  > >  DB接続の持続的接続オプションを実装してみましたので、
>  > >  皆様にお目通し頂きたくMLに投稿させてもらいます
>  >
>  > パッチありがとうございます!
>  >
>  > このパッチの設定なのですが, 以前, 案件で使用したことがあり, アクセス集中があった際に, コネクションが大量に残ってしまい,
>  > 結局高負荷で DB 接続できなくなったことがあります.
>  >
>  > 環境は, PostgreSQLでした.
>  > その件があって以来, 怖くて設定していないのですが, 習田さんの環境では, 設定した方が負荷低減していますでしょうか.
>  >
>
>
> はい、こちらの環境では、レスポンスが向上しています。
>  ただ、おっしゃる通りメモリ等のリソースに余裕のある環境でないと逆効果になる場合もありますので、
>  万人に有効なものではありませんね。
>  デフォルトでは無効にしていますので、必要な方だけ有効にして使ってもらえればと思います。
>  というわけで、コミット(r17153,r17154)しておきました。

PostgreSQL の場合は, pgpool-II などもありますので, 上手く使い分けることが重要ですよね.

# 当方の環境では, pgpool(II ではなく初代)でさえも落ちるという過酷な状況だったのも災いしているかもしれません.

>  > また, ちょっと話題から外れてしまいますが, 手元の開発環境の SC_Query を PDO に対応させてみました.
>  >
>  > せっかくなので, SC_Query をインターフェイスにしたり, Singleton パター
>  > ンを使用したりして, PHP5 の構文をいろいろ使ってみました.
>  >
>  > 実行時間も測ってみました.
>  > 100万件超のテーブルで limit 10 offset 5000 の条件で DB は PostgreSQL 8.3.0 です.
>  >
>  > Pear::DB 版 の所要時間 0.015205 秒
>  > PDO版 の所要時間 0.012010 秒
>  >
>  > もっと差が出るかなぁと思いましたが, 頑張った割に成果少なし...
>  > バッチ処理の場合は, もうちょっと差が出るかもしれません.
>  >
>  > こちらは需要がありそうならパッチを作ろうと思いますが, いかがでしょう?
>  >
>
>
> 素晴らしいですね。是非ともパッチ作成して頂きたいです。
>
>  ただ、上記の実装になると、システム要件が、PHP5.1以降になってしまうかと思います。
>  それ以前のバージョンのPHP環境への対応も考えるとSC_Queryを
>  PEAR::DB版かPDO版かを切り替えられるような仕組みも必要になってきそうですね。

実は, 手元の環境のものは, Factory パターンを利用して, Pear::DB 版と PDO 版を切り替え可能になっています.
が, PHP5 限定の実装なのです...

現在, 本業が炎上していますので, ちょっと余裕ができたら, PHP のバージョンや,
モジュールの有無をチェックして自動的に実装をスイッチできるようにしたいと思います.

今後とも, よろしくお願い致します.

-- 
大河内健太郎(Kentaro Ohkouchi)
E-mail ohkouchi@loop-az.jp
有限会社Loop AZ
http://www.loop-az.co.jp/

References
[comu-ml 0159] DB接続の持続的接続オプション, SHUTTA, Takafumi
[comu-ml 0162] Re: DB接続の持続的接続オプション, Kentaro Ohkouchi
[comu-ml 0163] Re: DB接続の持続的接続オプション, SHUTTA, Takafumi

[ 検索ページ | 一覧表示 | ツリー表示 | MLトップ | トップページ ]