- rokujyouhitoma
- 187627
- 16
- 418
- 68
3way hand shakeは結構コスト高いんすよ。あと、sliding window sizeが大きくなるまでに時間もかかるし。あ、sliding windowは最近のLinuxだと違うんだっけ。
2013-09-04 09:51:45MySQL の場合新規接続コスト安いので、リクエストのたびに接続してもあんまり問題ない。その場合、スレッドキャッシュ、backlog には注意。ただ、そもそもネットワークレベルで新規接続コスト高い環境ではこの限りではない。
2013-09-04 09:52:23@voluntas その場合も、例えば外部API呼び出し中とかに一旦トランザクションを終了してプールに接続返せるのがプールする利点ですね。1リクエスト1トランザクションだとプールの有り無しはあまり関係なくなります。
2013-09-04 09:55:07@methane 非同期で、あとから取り出せるのは確かに。1req 1 tx はまぁ、接続コストと認証コストを気にするかどうかだよね … 。ちなみに RDS でコネクションプール使わないと死ぬ理由知りたい。
2013-09-04 09:56:22プロトコルとかネットワーク構成にも依存するよね。極端な話localhostであればいろいろスキップされるからコネクションプール要らないし。
2013-09-04 09:58:39@voluntas リクエスト毎にopen/closeしてたらTIME_WAITが大量になってopenできなくなったことがあって、それからコネクションプールの利用を考慮しはじめました。対処として正しいのかよくわかってない。
2013-09-04 10:00:42@voluntas 多分仮想ネットワークが普通のLANほど性能出ないようで、秒間接続回数が増えてくると MySQL の性能出しきる前に syn に対する syn/ack が帰ってこなくなることが。報告して改善してもらったものの、コネクションプールを推奨されました。
2013-09-04 10:05:45@tokibito サーバの負荷はもうなんとも、言えない。落ちないサーバを作れとしか。ただ RDB は凄く難しいんだろうな、ここからは僕は詳しくないw 知りたい場合は @itawasa や @kuenishi を飲みに誘うと良いw
2013-09-04 10:06:37コネクションプールといった時に、永続化 (処理が終わっても次の処理で再利用する) と、シェア (並行する処理があり、処理中ずっと接続を必要とするわけで無い場合に譲りあう) は分けて考える必要がある。
2013-09-04 10:08:32@methane あー、そんな悲しい話があるんだ … 。勉強になりました。ということは Riak とかでもコネクションプール使った方がいいのね … 。ありがとう。
2013-09-04 10:08:57そもそもプールって「貯めておく場所」というイメージあるので、1プロセスで1接続を使うだけの場合は、プールと呼ばず永続化と呼びたい。
2013-09-04 10:09:52