Re: connection pool ?

看板PHP作者 ( )時間18年前 (2007/05/28 17:07), 編輯推噓2(201)
留言3則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《foxzgerald (O⊥M)》之銘言: : pooling 應該是 apache 所做的事情吧 : 曾經看過一篇 Rasmus Lerdorf(php 之父)的 interview 對於 pooling : 這個問題有以下的回應(SP為記者;RL則是 Rasmus Lerdorf): : [原文: http://www.sitepoint.com/article/phps-creator-rasmus-lerdorf/4 ] : x x x : SP: What about database connection pooling? Persistent connections are not : nearly good enough - are there plans to implement connection pooling in the : future? : RL: A pool of connections has to be owned by a single process. Since most : people use the Apache Web server, which is a multi-process pre-forking : server, there is simply no way that PHP can do this connection pooling. It : has to be done by a dedicated standalone process and is quite outside the : scope of PHP itself. Both SQLRelay and SRM can be used to solve this problem. : If/when the common architecture for PHP is a single-process multithreaded Web : server, we might consider putting this functionality into PHP itself, but : until that day it really doesn't make much sense. Even Apache 2 is still : going to be a multi-process server with each process being able to carry : multiple threads. So we could potentially have a pool of connections in each : process. : x x x : 如果要達到類似 connection pooling 的效果,應該是使用 persistent connections; : 至少它在連結之前,會先查看是否與資料庫間已建有連結,若已建立便使用該連結, : 若無才會建立新的。 謝謝 foxzgerald 的回應。 這幾天 survey 很久,也看到了 php 因為先天的限制所以無法創造最本質的 connection pool( C-P )。 SRM[1] 是我在 survey 中看到的一個解決方案之一,但我看到他的安裝方法幾乎是要去變 動 PHP 的 source code 部份( 這點我不是非常確定,有錯請指正 ),所以目前還沒有 實際去嘗試過。 不知是否有用過 SRM 經驗的板友呢? 很期待使用後的心得。 另外我目前的做法是用 C-P 開幾個 port 來連線,之後用 Share Memoery(SHM) 來記錄 table。 但另外有個問題就是: 假設我開 5 個 port 在 persistent connection。 之後當有一個新的連線進來時,我需 要到 SHM 裡的 TABLE 看哪個連線可用,如果不能用我就要 wait。 目前我 wait 的方法 是讓它去跑迴圈,每跑一次就 sleep XX ms。 但總覺得這方法不是很好,不知是否有其 它方法能去解決呢? 謝謝。 :) [1] SRM : http://www.vl-srm.net/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.164.243 ※ 編輯: kenshieh 來自: 140.119.164.243 (05/28 17:08) ※ 編輯: kenshieh 來自: 140.119.164.243 (05/28 17:08)

05/30 13:27, , 1F
semaphore ?
05/30 13:27, 1F

05/30 13:28, , 2F
05/30 13:28, 2F

05/30 15:16, , 3F
by the way .. 其實可以考慮混用 C/C++ 來撰寫 pool
05/30 15:16, 3F
文章代碼(AID): #16MflPGD (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
2
3
文章代碼(AID): #16MflPGD (PHP)