Change History
This change history is a high level summary of selected changes
that may impact applications and/or break backwards compatibility.
See also the CHANGES file in the source distribution
for a complete list of changes.
PECL/mysqlnd_ms 1.3 series
1.3.0-alpha
Release dates: TBD
Motto/theme: Query caching through quality-of-service concept
This is the current development series. All
features are at an early stage. Changes may happen at any time without
prior notice. Please, do not use this version in production environments.
The 1.3 series aims to improve the performance of applications
and the overall load of an asynchronous MySQL cluster, for example, a MySQL
cluster using MySQL Replication. This is done by transparently replacing
a slave access with a local cache access, if the application allows it by
setting an appropriate quality of service flag. When using MySQL replication
a slave can serve stale data. An application using MySQL replication must
continue to work correctly with stale data. Given that the application
is know to work correctly with stale data, the slave access can transparently
be replace with a local cache access.
PECL/mysqlnd_qc serves as a cache
backend. PECL/mysqlnd_qc supports use of various storage locations,
among others main memory, APC and MEMCACHE.
Feature changes
Added cache option to quality-of-service (QoS) filter.
New configure option enable-mysqlnd-ms-cache-support
New constant MYSQLND_MS_HAVE_CACHE_SUPPORT.
New constant MYSQLND_MS_QOS_OPTION_CACHE to be used
with mysqlnd_ms_set_qos.
PECL/mysqlnd_ms 1.2 series
1.2.1-beta
Release dates: 01/2012 (beta)
Motto/theme: see 1.2.0-alpha
Minor test changes.
1.2.0-alpha
Release dates: 11/2011 (alpha)
Motto/theme: Global Transaction ID injection and quality-of-service concept
In version 1.2 the focus continues to be on supporting MySQL database clusters
with asynchronous replication. The plugin tries to make using the cluster
introducing a quality-of-service filter which applications can use to define
what service quality they need from the cluster. Service levels provided are
eventual consistency with optional maximum age/slave slag, session consistency
and strong consistency.
Additionally the plugin can do client-side global transaction id injection
to make manual master failover easier.
Feature changes
Introduced quality-of-service (QoS) filter. Service levels provided by QoS filter:
eventual consistency, optional option slave lag
session consistency, optional option GTID
strong consistency
Added mysqlnd_ms_set_qos() function to set required connection quality at runtime.
New constants related to mysqlnd_ms_set_qos():
MYSQLND_MS_QOS_CONSISTENCY_STRONGMYSQLND_MS_QOS_CONSISTENCY_SESSIONMYSQLND_MS_QOS_CONSISTENCY_EVENTUALMYSQLND_MS_QOS_OPTION_GTIDMYSQLND_MS_QOS_OPTION_AGE
Added client-side global transaction id injection (GTID).
New statistics related to GTID:
gtid_autocommit_injections_successgtid_autocommit_injections_failuregtid_commit_injections_successgtid_commit_injections_failuregtid_implicit_commit_injections_successgtid_implicit_commit_injections_failure
Added mysqlnd_ms_get_last_gtid() to fetch last global transaction id.
Enabled support for multi master without slaves.
PECL/mysqlnd_ms 1.1 series
1.1.0
Release date: 09/2011
Motto/theme: Cover replication basics with production quality
The 1.1 and 1.0 series expose a similar feature set. Internally,
the 1.1 series has been refactored to plan for future feature
additions. A new configuration file format has been introduced,
and limitations have been lifted. And the code quality and quality
assurance has been improved.
Feature changes
Added the (chainable) filter concept:
BC break:
mysqlnd_ms_set_user_pick_server
has been removed. Thehttp://svn.php.net/viewvc/pecl/mysqlnd_ms/trunk/
user
filter has been introduced to replace it.
The filter offers similar functionality, but see below for an
explanation of the differences.
New powerful JSON based configuration syntax.
Lazy connections improved:
security relevant, and state changing commands are covered.
Support for (native) prepared statements.
New statistics: use_master_guess,
use_slave_guess.
BC break: Semantics of statistics changed for
use_slave, use_master.
Future changes are likely. Please see,
mysqlnd_ms_get_stats.
List of broadcasted messages extended by ssl_set.
Library calls now monitored to remember settings for lazy connections:
change_user, select_db,
set_charset, set_autocommit.
Introduced mysqlnd_ms.disable_rw_split.
The configuration setting allows using the load balancing and lazy connection
functionality independently of read write splitting.
Bug fixes
Fixed PECL #22724 - Server switching (mysqlnd_ms_query_is_select() case sensitive)
Fixed PECL #22784 - Using mysql_connect and mysql_select_db did not work
Fixed PECL #59982 - Unusable extension with --enable-mysqlnd-ms-table-filter.
Use of the option is NOT supported. You must not used it. Added note to m4.
Fixed Bug #60119 - host="localhost" lost in mysqlnd_ms_get_last_used_connection()
The mysqlnd_ms_set_user_pick_server function was removed, and
replaced in favor of a new user filter. You can no longer set a
callback function using mysqlnd_ms_set_user_pick_server at
runtime, but instead have to configure it in the plugins configuration file. The user
filter will pass the same arguments to the callback as before.
Therefore, you can continue to use the same procedural function as a callback.callback
It is no longer possible to use static class methods, or class methods of
an object instance, as a callback. Doing so will cause the function
executing a statement handled by the plugin to emit an
E_RECOVERABLE_ERROR level error, which might look like:
"(mysqlnd_ms) Specified callback (picker) is not a valid callback."
Note: this may halt your application.
PECL/mysqlnd_ms 1.0 series
1.0.1-alpha
Release date: 04/2011
Motto/theme: bug fix release
1.0.0-alpha
Release date: 04/2011
Motto/theme: Cover replication basics to test user feedback
The first release of practical use. It features basic automatic read-write splitting,
SQL hints to overrule automatic redirection, load balancing of
slave requests, lazy connections, and optional, automatic use of the master
after the first write.
The public feature set is close to that of the 1.1 release.
1.0.0-pre-alpha
Release date: 09/2010
Motto/theme: Proof of concept
Initial check-in. Essentially a demo of the
mysqlnd plugin API.