diff --git a/reference/mysqlnd_qc/book.xml b/reference/mysqlnd_qc/book.xml index 39f8c80f21..89a05ca77f 100644 --- a/reference/mysqlnd_qc/book.xml +++ b/reference/mysqlnd_qc/book.xml @@ -119,6 +119,12 @@ + + + + Built-in slam defense to prevent cache stampeding. + + @@ -127,7 +133,7 @@ Limitations The current 1.0.1 release of PECL mysqlnd_qc does - not support PHP 5.4. + not support PHP 5.4. Version 1.1.0-alpha lifts this limitation. Prepared statements and unbuffered queries are fully supported. diff --git a/reference/mysqlnd_qc/changes.xml b/reference/mysqlnd_qc/changes.xml index e88cd8f7b6..693b1fa983 100644 --- a/reference/mysqlnd_qc/changes.xml +++ b/reference/mysqlnd_qc/changes.xml @@ -24,7 +24,7 @@ - Motto/theme: PHP 5.4 compatbility + Motto/theme: PHP 5.4 compatbility, schema pattern based caching and mysqlnd_ms support @@ -52,13 +52,31 @@ - New PHP configuration directive + New PHP configuration directives mysqlnd_qc.collect_statistics_log_file + + + mysqlnd_qc.ignore_sql_comments. + Control whether SQL comments are ignored for cache key hash generation. + + + + + + + + New constants and SQL hints + + + + MYSQLND_QC_SERVER_ID_SWITCH allows grouping of cache entries from + different physical connections. This is needed by PECL/mysqlnd_ms. + @@ -69,6 +87,45 @@ of the default handler through mysqlnd_qc_get_cache_info. + + + Include charset number for cache entry hashing. This should prevent serving result + sets which have the wrong charset. + + + API change: get_hash_key expects new "charsetnr" (int) parameter after "port". + + + + + API change: changing is_select() signature from bool is_select() to + mixed is_select(). Mixed can be either boolean or + array(long ttl, string server_id). This is needed by PECL/mysqlnd_ms. + + + + + + Other + + + + Support acting as a cache backend for + PECL/mysqlnd_ms 1.3.0-beta or later + to transparently replace MySQL Replication slave reads with cache accesses, + if the user explicitly allows. + + + + + + Bug fixes + + + + Fixed Bug #59959 (config.m4, wrong library - 64bit memcached handler builds) (Credits: Remi Collet) + + diff --git a/reference/mysqlnd_qc/ini.xml b/reference/mysqlnd_qc/ini.xml index fe6e7666cb..665e2ed48e 100644 --- a/reference/mysqlnd_qc/ini.xml +++ b/reference/mysqlnd_qc/ini.xml @@ -87,6 +87,20 @@ + + mysqlnd_qc.collect_normalized_query_trace + 0 + PHP_INI_SYSTEM + + + + + mysqlnd_qc.ignore_sql_comments + 1 + PHP_INI_ALL + + + mysqlnd_qc.slam_defense 0 @@ -101,13 +115,6 @@ - - mysqlnd_qc.collect_normalized_query_trace - 0 - PHP_INI_SYSTEM - - - mysqlnd_qc.std_data_copy 0 @@ -294,6 +301,24 @@ + + + mysqlnd_qc.ignore_sql_comments + integer + + + + Whether to remove SQL comments from a query string before + hashing it to generate a cache key. Disable if you do not want + two statemts such as SELECT /*my_source_ip=123*/ id FROM test + and SELECT /*my_source_ip=456*/ id FROM test to refer + to the same cache entry. + + + Since 1.1.0. + + + mysqlnd_qc.slam_defense @@ -301,7 +326,7 @@ - Activates handler based slam defense if available. + Activates handler based slam defense (cache stampeding protection) if available. Supported by Default and diff --git a/reference/mysqlnd_qc/quickstart.xml b/reference/mysqlnd_qc/quickstart.xml index 1a327eaff0..d15979e981 100644 --- a/reference/mysqlnd_qc/quickstart.xml +++ b/reference/mysqlnd_qc/quickstart.xml @@ -770,7 +770,7 @@ Cache hit: 1 A badly designed cache can do more harm than good. In the worst case a cache can increase database server load instead of minimizing it. An overload situation - can occur if a highly shared cache entry expires. + can occur if a highly shared cache entry expires (cache stampeding). Cache entries are shared and reused to a different degree depending on