A little cleanup

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@329449 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Philip Olson 2013-02-08 07:09:45 +00:00
parent c033e710fe
commit 974b97a175

View file

@ -1807,35 +1807,35 @@ if ($res) {
<section xml:id="mysqlnd-ms.quickstart.partitioning">
<title>Partitioning and Sharding</title>
<para>
Database clustering is done for various reasons. Cluster can improve availability,
fault tolerance but also to increase performance by applying a divide and conquer approach.
Work is distributed over many machines. Clustering is sometimes combined with
partitioning and sharding to further break up a big, complex task into
smaller, managable units.
Database clustering is done for various reasons. Clusters can improve availability,
fault tolerance, and increase performance by applying a divide and conquer approach
as work is distributed over many machines. Clustering is sometimes combined with
partitioning and sharding to further break up a large complex task into
smaller, more manageable units.
</para>
<para>
This plugin aims to support all kinds of MySQL database clusters. Some flavours of
The mysqlnd_ms plugin aims to support a wide variety of MySQL database clusters. Some flavors of
MySQL database clusters have built-in methods for partitioning and sharding,
which may or may not be transparent to use. The plugin supports the two most
common approaches explicitly namely MySQL Replication table filtering and
application based partitioning or sharding.
which could be transparent to use. The plugin supports the two most
common approaches: MySQL Replication table filtering, and Sharding
(application based partitioning).
</para>
<para>
MySQL Replication supports partitioning in the form of filters that allow you to
create slaves replicating all database of the master or only certain databases
respectively tables. It is then in the responsibility of the application
MySQL Replication supports partitioning as filters that allow you to
create slaves that replicate all or specific databases of the master, or tables.
It is then in the responsibility of the application
to choose a slave according to the filter rules. You can either use the
plugins node_groups filter to manually support this or use
the experimental table filter.
mysqlnd_ms <literal>node_groups</literal> filter to manually support this,
or use the experimental table filter.
</para>
<para>
Manual partitioning or sharding is supported through
node grouping filter and SQL hints since 1.5.0. The node_groups filter
Manual partitioning or sharding is supported through the
node grouping filter, and SQL hints as of 1.5.0. The node_groups filter
lets you assign a symbolic name to a group of master and slave servers.
In the example, the master <literal>master_0</literal> and <literal>slave_0</literal>
form a group with the name <literal>Partition_A</literal>. It is entirely
up to you to decide what makes up a group. For example, you may use node
groups for sharding and use the group name to address shards
groups for sharding, and use the group names to address shards
like <literal>Shard_A_Range_0_100</literal>.
</para>
<para>
@ -1923,12 +1923,12 @@ select($mysqli, "slave_1", "/*Partition_A*/");
</example>
</para>
<para>
By default the plugin will use all configured master and slave servers for
query execution. However, if a query begins with a SQL hint
<literal>/*node_group*/</literal>,the plugin will consider only the servers
By default, the plugin will use all configured master and slave servers for
query execution. But if a query begins with a SQL hint like
<literal>/*node_group*/</literal>, the plugin will only consider the servers
listed in the <literal>node_group</literal> for query execution. Thus,
<literal>SELECT</literal> queries prefixed with <literal>/*Partition_A*/</literal>
are executed on <literal>slave_0</literal> only.
will only be executed on <literal>slave_0</literal>.
</para>
</section>