andrey                                   Wed, 07 Oct 2009 17:33:51 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=289285

Log:
Increase the minimal size of the command buffer, which is used
for sending queries and in the future commpressed patch for reading
almost all packets from the wire instead of using stack buffers.

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_enum_n_def.h
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/php_mysqlnd.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_enum_n_def.h
    U   php/php-src/trunk/ext/mysqlnd/php_mysqlnd.c

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2009-10-07 17:21:18 UTC 
(rev 289284)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2009-10-07 17:33:51 UTC 
(rev 289285)
@@ -1948,6 +1948,9 @@
                        break;
 #endif
                case MYSQLND_OPT_NET_CMD_BUFFER_SIZE:
+                       if (*(unsigned int*) value < 
MYSQLND_NET_CMD_BUFFER_MIN_SIZE) {
+                               DBG_RETURN(FAIL);
+                       }
                        conn->net.cmd_buffer.length = *(unsigned int*) value;
                        if (!conn->net.cmd_buffer.buffer) {
                                conn->net.cmd_buffer.buffer = 
mnd_pemalloc(conn->net.cmd_buffer.length, conn->persistent);

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_enum_n_def.h
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_enum_n_def.h       
2009-10-07 17:21:18 UTC (rev 289284)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_enum_n_def.h       
2009-10-07 17:33:51 UTC (rev 289285)
@@ -28,6 +28,10 @@
 #define MYSQLND_SQLSTATE_LENGTH                5
 #define MYSQLND_SQLSTATE_NULL          "00000"

+
+#define MYSQLND_NET_CMD_BUFFER_MIN_SIZE                        4096
+#define MYSQLND_NET_CMD_BUFFER_MIN_SIZE_STR            "4096"
+
 #define SERVER_STATUS_IN_TRANS                                 1       /* 
Transaction has started */
 #define SERVER_STATUS_AUTOCOMMIT                               2       /* 
Server in auto_commit mode */
 #define SERVER_MORE_RESULTS_EXISTS                             8       /* 
Multi query - next query exists */

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/php_mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/php_mysqlnd.c      2009-10-07 
17:21:18 UTC (rev 289284)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/php_mysqlnd.c      2009-10-07 
17:33:51 UTC (rev 289285)
@@ -26,7 +26,6 @@
 #include "mysqlnd_debug.h"
 #include "ext/standard/info.h"

-
 /* {{{ mysqlnd_functions[]
  *
  * Every user visible function must have an entry in mysqlnd_functions[].
@@ -136,7 +135,7 @@
        mysqlnd_globals->collect_memory_statistics = FALSE;
        mysqlnd_globals->debug = NULL;  /* The actual string */
        mysqlnd_globals->dbg = NULL;    /* The DBG object*/
-       mysqlnd_globals->net_cmd_buffer_size = 2048;
+       mysqlnd_globals->net_cmd_buffer_size = MYSQLND_NET_CMD_BUFFER_MIN_SIZE;
        mysqlnd_globals->net_read_buffer_size = 32768;
        mysqlnd_globals->net_read_timeout = 31536000;
        mysqlnd_globals->log_mask = 0;
@@ -144,13 +143,24 @@
 /* }}} */


+static PHP_INI_MH(OnUpdateNetCmdBufferSize)
+{
+       long long_value = atol(new_value);
+       if (long_value < MYSQLND_NET_CMD_BUFFER_MIN_SIZE) {
+               return FAILURE;
+       }
+       MYSQLND_G(net_cmd_buffer_size) = long_value;
+
+       return SUCCESS;
+}
+
 /* {{{ PHP_INI_BEGIN
 */
 PHP_INI_BEGIN()
        STD_PHP_INI_BOOLEAN("mysqlnd.collect_statistics",       "1",    
PHP_INI_ALL, OnUpdateBool,      collect_statistics, zend_mysqlnd_globals, 
mysqlnd_globals)
        STD_PHP_INI_BOOLEAN("mysqlnd.collect_memory_statistics",        "0",    
PHP_INI_SYSTEM, OnUpdateBool,   collect_memory_statistics, 
zend_mysqlnd_globals, mysqlnd_globals)
        STD_PHP_INI_ENTRY("mysqlnd.debug",                                      
NULL,   PHP_INI_SYSTEM, OnUpdateString, debug, zend_mysqlnd_globals, 
mysqlnd_globals)
-       STD_PHP_INI_ENTRY("mysqlnd.net_cmd_buffer_size",        "2048", 
PHP_INI_ALL,    OnUpdateLong,   net_cmd_buffer_size,    zend_mysqlnd_globals,   
        mysqlnd_globals)
+       STD_PHP_INI_ENTRY("mysqlnd.net_cmd_buffer_size",        
MYSQLND_NET_CMD_BUFFER_MIN_SIZE_STR,    PHP_INI_ALL,    
OnUpdateNetCmdBufferSize,       net_cmd_buffer_size,    zend_mysqlnd_globals,   
        mysqlnd_globals)
        STD_PHP_INI_ENTRY("mysqlnd.net_read_buffer_size",       
"32768",PHP_INI_ALL,    OnUpdateLong,   net_read_buffer_size,   
zend_mysqlnd_globals,           mysqlnd_globals)
        STD_PHP_INI_ENTRY("mysqlnd.net_read_timeout",   "31536000",     
PHP_INI_SYSTEM, OnUpdateLong,   net_read_timeout, zend_mysqlnd_globals, 
mysqlnd_globals)
        STD_PHP_INI_ENTRY("mysqlnd.log_mask",                           "0",    
PHP_INI_ALL,    OnUpdateLong,   log_mask, zend_mysqlnd_globals, mysqlnd_globals)

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2009-10-07 17:21:18 UTC (rev 
289284)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2009-10-07 17:33:51 UTC (rev 
289285)
@@ -1948,6 +1948,9 @@
                        break;
 #endif
                case MYSQLND_OPT_NET_CMD_BUFFER_SIZE:
+                       if (*(unsigned int*) value < 
MYSQLND_NET_CMD_BUFFER_MIN_SIZE) {
+                               DBG_RETURN(FAIL);
+                       }
                        conn->net.cmd_buffer.length = *(unsigned int*) value;
                        if (!conn->net.cmd_buffer.buffer) {
                                conn->net.cmd_buffer.buffer = 
mnd_pemalloc(conn->net.cmd_buffer.length, conn->persistent);

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_enum_n_def.h
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_enum_n_def.h  2009-10-07 17:21:18 UTC 
(rev 289284)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_enum_n_def.h  2009-10-07 17:33:51 UTC 
(rev 289285)
@@ -28,6 +28,10 @@
 #define MYSQLND_SQLSTATE_LENGTH                5
 #define MYSQLND_SQLSTATE_NULL          "00000"

+
+#define MYSQLND_NET_CMD_BUFFER_MIN_SIZE                        4096
+#define MYSQLND_NET_CMD_BUFFER_MIN_SIZE_STR            "4096"
+
 #define SERVER_STATUS_IN_TRANS                                 1       /* 
Transaction has started */
 #define SERVER_STATUS_AUTOCOMMIT                               2       /* 
Server in auto_commit mode */
 #define SERVER_MORE_RESULTS_EXISTS                             8       /* 
Multi query - next query exists */

Modified: php/php-src/trunk/ext/mysqlnd/php_mysqlnd.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/php_mysqlnd.c 2009-10-07 17:21:18 UTC (rev 
289284)
+++ php/php-src/trunk/ext/mysqlnd/php_mysqlnd.c 2009-10-07 17:33:51 UTC (rev 
289285)
@@ -26,7 +26,6 @@
 #include "mysqlnd_debug.h"
 #include "ext/standard/info.h"

-
 /* {{{ mysqlnd_functions[]
  *
  * Every user visible function must have an entry in mysqlnd_functions[].
@@ -136,7 +135,7 @@
        mysqlnd_globals->collect_memory_statistics = FALSE;
        mysqlnd_globals->debug = NULL;  /* The actual string */
        mysqlnd_globals->dbg = NULL;    /* The DBG object*/
-       mysqlnd_globals->net_cmd_buffer_size = 2048;
+       mysqlnd_globals->net_cmd_buffer_size = MYSQLND_NET_CMD_BUFFER_MIN_SIZE;
        mysqlnd_globals->net_read_buffer_size = 32768;
        mysqlnd_globals->net_read_timeout = 31536000;
        mysqlnd_globals->log_mask = 0;
@@ -144,13 +143,24 @@
 /* }}} */


+static PHP_INI_MH(OnUpdateNetCmdBufferSize)
+{
+       long long_value = atol(new_value);
+       if (long_value < MYSQLND_NET_CMD_BUFFER_MIN_SIZE) {
+               return FAILURE;
+       }
+       MYSQLND_G(net_cmd_buffer_size) = long_value;
+
+       return SUCCESS;
+}
+
 /* {{{ PHP_INI_BEGIN
 */
 PHP_INI_BEGIN()
        STD_PHP_INI_BOOLEAN("mysqlnd.collect_statistics",       "1",    
PHP_INI_ALL, OnUpdateBool,      collect_statistics, zend_mysqlnd_globals, 
mysqlnd_globals)
        STD_PHP_INI_BOOLEAN("mysqlnd.collect_memory_statistics",        "0",    
PHP_INI_SYSTEM, OnUpdateBool,   collect_memory_statistics, 
zend_mysqlnd_globals, mysqlnd_globals)
        STD_PHP_INI_ENTRY("mysqlnd.debug",                                      
NULL,   PHP_INI_SYSTEM, OnUpdateString, debug, zend_mysqlnd_globals, 
mysqlnd_globals)
-       STD_PHP_INI_ENTRY("mysqlnd.net_cmd_buffer_size",        "2048", 
PHP_INI_ALL,    OnUpdateLong,   net_cmd_buffer_size,    zend_mysqlnd_globals,   
        mysqlnd_globals)
+       STD_PHP_INI_ENTRY("mysqlnd.net_cmd_buffer_size",        
MYSQLND_NET_CMD_BUFFER_MIN_SIZE_STR,    PHP_INI_ALL,    
OnUpdateNetCmdBufferSize,       net_cmd_buffer_size,    zend_mysqlnd_globals,   
        mysqlnd_globals)
        STD_PHP_INI_ENTRY("mysqlnd.net_read_buffer_size",       
"32768",PHP_INI_ALL,    OnUpdateLong,   net_read_buffer_size,   
zend_mysqlnd_globals,           mysqlnd_globals)
        STD_PHP_INI_ENTRY("mysqlnd.net_read_timeout",   "31536000",     
PHP_INI_SYSTEM, OnUpdateLong,   net_read_timeout, zend_mysqlnd_globals, 
mysqlnd_globals)
        STD_PHP_INI_ENTRY("mysqlnd.log_mask",                           "0",    
PHP_INI_ALL,    OnUpdateLong,   log_mask, zend_mysqlnd_globals, mysqlnd_globals)

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to