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.
+