diff --git a/reference/mysqlnd_ms/changes.xml b/reference/mysqlnd_ms/changes.xml index 6b8615a3af..a8552d8ed7 100644 --- a/reference/mysqlnd_ms/changes.xml +++ b/reference/mysqlnd_ms/changes.xml @@ -69,18 +69,29 @@ Extended configuration file validation during PHP startup (RINIT). - An E_WARNING level error will be thrown if the configuration - file can not be read (permissions), is empty, or the file (JSON) could not be parsed. + An E_WARNING level error will be thrown if the configuration + file can not be read (permissions), is empty, or the file (JSON) could not be parsed. Warnings may appear in log files, which depending on how PHP is configured. + + Distributions that aim to provide a pre-configured setup, including a configuration file stub, are asked to put {} into the configuration file to prevent this warning about an invalid configuration file. + + Further configuration file validation is done when parsing sections + upon opening a connection. Please, note that there may still be situations + when an invalid plugin configuration file does not lead to proper error messages + but a failure to connect. + + + The code examples in the mysqlnd_ms source were updated. + diff --git a/reference/mysqlnd_ms/concepts.xml b/reference/mysqlnd_ms/concepts.xml index fdb88d89ac..9eda7065a8 100755 --- a/reference/mysqlnd_ms/concepts.xml +++ b/reference/mysqlnd_ms/concepts.xml @@ -1596,35 +1596,139 @@ version = 5.6.2-m5-log - Using asynchronous clusters with single master + Primary copy (MySQL Replication) - Primary use case of the plugin. Follow the hints given in the descriptions of each feature. - - - Version requirement - - The following cluster may require use of settings not available before mysqlnd_ms 1.2.0-alpha. - - - - Using asynchronous clusters with multiple masters + This is the primary use case of the plugin. Follow the hints given in the descriptions of each feature. - This setup is currently unsupported. + + Enabling the plugin (php.ini) + + + + - The plugin has no built-in functionality to direct certain writes to certain - masters. It is considered to add table filtering to future versions. Table filter - would allow restricting both read and writes to certain slaves and masters based - on the database/schema and table used by a statement. + + Basic plugin configuration (mysqlnd_ms_plugin.ini) for MySQL Replication + + + + - A table filtering feature is prepared in the plugins source code. However, it is - instable and must not be used. Bug reports on table filtering will be rejected. + Primary copy with multi primaries (MMM - MySQL Multi Master) - Using synchronous clusters such as MySQL Cluster + MySQL Replication allows you to create cluster topologies with multiple masters (primaries). + Write-write conflicts are not handled by the replication system. This is no update anywhere setup. + Thus, data must be partitioned manually and clients must redirected in accordance + to the partitioning rules. The recommended setup is equal to the sharding setup below. + + + Manual sharding, possibly combined with primary copy and multiple primaries + + + Use SQL hints and the node group filter for clusters that use data partitioning + but leave query redirection to the client. The example configuration shows a multi master + setup with two shards. + + + + Multiple primaries - multi master (php.ini) + + + + + + + + Primary copy with multiple primaries and paritioning + + + + + + + The plugin can also be used with a loose collection of unrelated shards. For + such a cluster, configure masters only and disable read write splitting. The nodes of + such a cluster are called masters in the plugin configuration as they accept + both reads and writes for their partition. + + + Using synchronous update everywhere clusters such as MySQL Cluster MySQL Cluster is a synchronous cluster solution. All cluster nodes accept @@ -1703,12 +1807,68 @@ version = 5.6.2-m5-log Set - failover=master + failover=loop_before_master in the plugins configuration file to avoid warnings about the empty slave list + and to make the failover logic loop over all configured masters before emitting an error. + + + Please, note the warnings about automatic failover given in the previous sections. + + + Multiple primaries - multi master (php.ini) + + + + + + + + Synchronous update anywhere cluster + + + + + + + If running an update everywhere cluster that has no built-in partitioning to + avoid hot spots and high collision rates, consider using the node groups filter + to keep updates on a frequently accessed table on one of the nodes. This may + help to reduce collision rates and thus improve performance. +