1.4.1 beta

  Release date: 08/2012

  * Fixed compatibility with PHP 5.5

1.4.0 alpha

  Motto/theme: Tweaking based on user feedback
  Release date: 07/2012

  * BC break: renamed ini setting "ini_file" to "config_file".
    Earlier versions have been configured through an ini style file
    and its name was set with the ini setting "ini_file". The ini
    style soon got replaced with JSON. We are now updating the file name
    to config_file to leave the past behing and avoid confusion with
    the PHP configuration file

  * New config setting: "server_charset". Allows setting of charset
    to be used for string encoding before connections have been opened.
    Most useful with lazy connections.

  * Improved error messages if opening and/or parsing of plugin
    configuration file fails.

  * Added "wait_for_gtid_timeout" for throttling of read-your-write SELECTs

  * Weighted load balancing. Servers can have a weight. Before picking a server, the
    load balancing logic sorts the server list by weight and picks the one with the
    highest weight. Then, the weight counter is decremented and the same logic is
    applied for the next request.

  * New failover strategy "loop_before_master". If connecting to a slave
    fails the plugin can either return an error to the caller
    (strategy "disabled", default), fall back to the master (stategy "master") or
    try to connect to any of the other slaves before connecting to the master
    (stategy "loop_before_master").

  * New "max_retries" setting to be used with fail over strategy "loop_before_master".
    If "max_retries" is set to 0 (default), all alternatives will be tested
    and the search is unlimited. Set max_retries to n to limit slave connection attempts
    to n attempts before falling back to master. If, multiple master are configured
    and max_retries = n != 0, then n masters are tested. No matter whether there
    was a slave loop before or not. This means that there can be update 2 * n
    connection attempts before the plugin gives up. Experimental: stable but syntax
    may change and QoS may not support it.

  * New "remember_failed" setting to remember hosts that have failed and skip
    them for the rest of the the web request instead of attempting to connect
    again. Experimental: stable with roundrobin and random but not supported
    with QoS - syntax is likely to change due to refactoring.


1.3.2 stable

  Release date: 04/2012

  * Fixed problem with multi-master where although in a transaction
   the queries to the master weren't sticky and were spread all
   over the masters (RR). Still not sticky for Random. Random_once
   is not affected.


1.3.1 beta

  Release date: 04/2012

  * Fixed problem with building together with QC.


1.3.0 alpha

  Motto/theme: Query caching through quality-of-service concept
  Release date: 04/2012

  * Added support for MySQL 5.6.5-m8+ global transaction ID feature
    - GTID is string if using server-side feature
    - GTID continues to be a long if using client-side emulation

  * Added query cache support to quality-of-service filter
    - new compile option --enable-mysqlnd-ms-cache-support
    - new constant MYSQLND_MS_QOS_OPTION_CACHE to be used with mysqlnd_ms_set_qos()
    - new constant MYSQLND_MS_HAVE_CACHE_SUPPORT set if cache support is compiled in


1.2.1 beta

  Motto/theme: Global Transaction ID injection and quality-of-service concept
  Release date: 01/2012

  * No major changes


1.2.0 alpha

  Motto/theme: Global Transaction ID injection and quality-of-service concept
  Release date: 12/2011

  * Introduced quality-of-service (QoS) filter
  * 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_STRONG
    - MYSQLND_MS_QOS_CONSISTENCY_SESSION
    - MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL
    - MYSQLND_MS_QOS_OPTION_GTID
    - MYSQLND_MS_QOS_OPTION_AGE
  * Service levels provided by QoS filter
    * eventual consistency, optional option slave lag
    * session consistency, optional option GTID
    * strong consistency

  * Added global transaction ID injection (GTID)
  * Added mysqlnd_ms_get_last_gtid() to fetch last transaction id
  * Enabled support for multi master with or without slaves
  * New statistics related to GTID:
    - gtid_autocommit_injections_success
    - gtid_autocommit_injections_failure
    - gtid_commit_injections_success
	- gtid_commit_injections_failure
	- gtid_implicit_commit_injections_success
    - gtid_implicit_commit_injections_failure


1.1.2 stable / production ready

  Motto/theme : Cover replication basics with production quality
  Release date: 11/2011

  * Introduced mysqlnd_ms.disable_rw_split ini setting
  * Fixed Bug #60119 - 	host="localhost" lost in mysqlnd_ms_get_last_used_connection()


1.1.1 beta

  Motto/theme : Cover replication basics with production quality
  Release date: 10/2011

  * NOTE: 1.1.0 alpha (PECL version) has reported itself as "1.1.0-beta"
  * 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.


1.1.0 alpha

  Motto/theme : Cover replication basics with production quality
  Release date: 09/2011

  * Code base refactored to prepare for future releases
  * Introduction of (chainable) filter concept
  * New powerful JSON based configuration syntax
  * Lazy connections improved: security relevant, state changing commands covered
  * Support for (native) prepared statements
  * Added new function - mysqlnd_ms_get_last_used_connection($obj_or_res)
  * Replaced mysqlnd_ms_set_user_pick_server() with "user" filter
  * New statistics: use_slave_guess, use_master_guess
  * Change of semantics of statistics: use_slave, use_master
  * List of broadcasted messages extended: ssl_set
  * Commands monitored to remember settings for lazy connections: change_user,
    select_db, set_charset, set_autocommit.
  * The plugin configuration file must contain a slave list. Failing to provide
    will cause an E_ERROR level error (fatal). The slave list may be empty.

  * MySQL replication filter (client-side partitioning) support prepared
  * Multi-master configuration support prepared (ini setting: mysqlnd_ms.multi_master)

  * Almost 5x more tests, code coverage through tests 75-90% for core files
  * Fixed PECL #22724 - Server switching (mysqlnd_ms_query_is_select case sensitive)
  * Fixed PECL #22784 - Using mysql_connect and mysql_select_db() won't work


1.0 alpha

  Release date: 04/2011
  Motto/theme : Cover replication basics to test user feeedback

  * Basic automatic read-write split (read: slave, write: master)
  * SQL hints to overrule automatic R/W split
  * Load balancing of slave requests


1.0 pre-alpha

  Release date: 09/2010
  Motto/theme : Proof-of-concept

  * Initial check-in
  * Hardly more than a demo of the mysqlnd
  * Hardly of any practial use.


