Edit report at https://bugs.php.net/bug.php?id=60716&edit=1
ID: 60716
Comment by: marc-bennewitz at arcor dot de
Reported by: markrose at markrose dot ca
Summary: Ability to set PDO connection timeout in
milliseconds
Status: Open
Type: Feature/Change Request
Package: PDO related
Operating System: n/a
PHP Version: 5.4.0RC5
Block user comment: N
Private report: N
New Comment:
I would like it because 1second can be a long time if you would like to connect
to a failover server you have minimum of 2x1 seconds.
Sure if it's not possible with libmysql it's a MySQL-BUG only but for mysqlnd
(and other db driver) it could be done.
The simplest way would be to allow a float value as timeout and if the driver
supports it use it else round it up to the next second.
Previous Comments:
------------------------------------------------------------------------
[2012-05-02 07:32:47] [email protected]
For the MySQL part this can be considered Bogus/Not a bug because PHP is the
wrong place to ask for it. Please, file a bug at MySQL.
The underlying MySQL C API does not offer sub second granularity for setting
the connect timeout. If it was to be fixed, it should be done at the lowest
level which is the MySQL C API. No matter whether we are talking mysqlnd or
MySQL Client Library (libmysql). See also
http://dev.mysql.com/doc/refman/5.6/en/mysql-options.html and
http://blog.ulf-wendel.de/?p=273
For the PDO part, I am not too keen of driver specific settings. What's the
purpose of PDO if not providing an abstraction for it... However, for years now
PDO seems kind of neglected, nobody feeling too much responsible for it.
------------------------------------------------------------------------
[2012-01-11 17:20:38] markrose at markrose dot ca
Description:
------------
I'd like the ability to set PDO's connection timeout (to MySQL specifically) in
milliseconds. The lowest the timeout can current be set to is 1 second, which
is
an extremely long time to wait for a database machine to reply.
I run a synchronously replicated MySQL environment (Galera), and I'd like to be
able to move on to the next machine if the database doesn't respond in say, 10
ms. Instead, PHP waits one second. This reduces the throughput of my PHP
scripts
from several hundred per second to only a handful per second, severely
impacting
performance and quickly exhausting the PHP thread pool, leading to timeouts.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=60716&edit=1