Merge lp:~hrvojem/percona-xtradb-cluster/bug1133638 into lp:percona-xtradb-cluster/percona-xtradb-cluster-5.5
- bug1133638
- Merge into 5.5
Status: | Merged | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Approved by: | Raghavendra D Prabhu | ||||||||||||
Approved revision: | no longer in the source branch. | ||||||||||||
Merged at revision: | 388 | ||||||||||||
Proposed branch: | lp:~hrvojem/percona-xtradb-cluster/bug1133638 | ||||||||||||
Merge into: | lp:percona-xtradb-cluster/percona-xtradb-cluster-5.5 | ||||||||||||
Diff against target: |
446 lines (+321/-13) 7 files modified
doc-pxc/source/faq.rst (+3/-2) doc-pxc/source/howtos/cenots_howto.rst (+6/-0) doc-pxc/source/howtos/ubuntu_howto.rst (+302/-0) doc-pxc/source/index.rst (+1/-0) doc-pxc/source/installation.rst (+2/-0) doc-pxc/source/limitation.rst (+3/-6) doc-pxc/source/wsrep-system-index.rst (+4/-5) |
||||||||||||
To merge this branch: | bzr merge lp:~hrvojem/percona-xtradb-cluster/bug1133638 | ||||||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Raghavendra D Prabhu (community) | Approve | ||
Review via email: mp+160283@code.launchpad.net |
Commit message
Description of the change
Raghavendra D Prabhu (raghavendra-prabhu) wrote : | # |
Raghavendra D Prabhu (raghavendra-prabhu) wrote : | # |
Bug #1155897: Cluster does not follow MDL semantics -- this one is good.
Raghavendra D Prabhu (raghavendra-prabhu) wrote : | # |
> Bug #1155897: Cluster does not follow MDL semantics -- this one is good.
I meant " Limitations page in the doc is out of date " here
Raghavendra D Prabhu (raghavendra-prabhu) wrote : | # |
Regarding
"Bug #1155897: Cluster does not follow MDL semantics"
has
"With regards to DDL under RSU method, is MDL honoured or is it not?"
been tested?
Raghavendra D Prabhu (raghavendra-prabhu) wrote : | # |
Regarding
"+This variable controls how many replication events will be grouped together. Replication events are grouped in SQL slave thread by skipping events which may cause commit. This way the wsrep node acting in |MySQL| slave role and all other wsrep nodes in provider replication group, will see same (huge) transactions. This implementation is still experimental. This may help with the bottleneck of having only one |MySQL| slave facing commit time delay of synchronous provider."
for Bug #1170066
Has this been sourced from any codership docs?
Raghavendra D Prabhu (raghavendra-prabhu) wrote : | # |
Everything looks good here except Bug #1155897.
Raghavendra D Prabhu (raghavendra-prabhu) wrote : | # |
Approved.
Preview Diff
1 | === modified file 'doc-pxc/source/faq.rst' |
2 | --- doc-pxc/source/faq.rst 2013-01-25 07:37:41 +0000 |
3 | +++ doc-pxc/source/faq.rst 2013-06-13 13:58:35 +0000 |
4 | @@ -47,7 +47,7 @@ |
5 | |
6 | Q: How would it handle split brain? |
7 | ==================================== |
8 | -A: It would not handle it. The |split brain| is hard stop, |XtraDB Cluster| can't resolve it. |
9 | +A: It would not handle it. The |split brain| is hard stop, XtraDB Cluster can't resolve it. |
10 | That's why the minimal recommendation is to have 3 nodes. |
11 | However there is possibility to allow a node to handle the traffic, option is: :: |
12 | |
13 | @@ -58,11 +58,12 @@ |
14 | A: It is possible in two ways: |
15 | |
16 | 1. By default Galera reads starting position from a text file <datadir>/grastate.dat. Just make this file identical on all nodes, and there will be no state transfer upon start. |
17 | + |
18 | 2. With :variable:`wsrep_start_position` variable - start the nodes with the same *UUID:seqno* value and there you are. |
19 | |
20 | Q: I have a two nodes setup. When node1 fails, node2 does not accept commands, why? |
21 | ==================================================================================== |
22 | -A: This is expected behaviour, to prevent |split brain|. See previous question. |
23 | +A: This is expected behavior, to prevent |split brain|. See previous question. |
24 | |
25 | Q: What tcp ports are used by Percona XtraDB Cluster? |
26 | ====================================================== |
27 | |
28 | === modified file 'doc-pxc/source/howtos/cenots_howto.rst' |
29 | --- doc-pxc/source/howtos/cenots_howto.rst 2013-03-12 09:32:01 +0000 |
30 | +++ doc-pxc/source/howtos/cenots_howto.rst 2013-06-13 13:58:35 +0000 |
31 | @@ -161,6 +161,9 @@ |
32 | # Node #2 address |
33 | wsrep_node_address=192.168.70.72 |
34 | |
35 | + # Cluster name |
36 | + wsrep_cluster_name=my_centos_cluster |
37 | + |
38 | # SST method |
39 | wsrep_sst_method=xtrabackup |
40 | |
41 | @@ -222,6 +225,9 @@ |
42 | # Node #3 address |
43 | wsrep_node_address=192.168.70.73 |
44 | |
45 | + # Cluster name |
46 | + wsrep_cluster_name=my_centos_cluster |
47 | + |
48 | # SST method |
49 | wsrep_sst_method=xtrabackup |
50 | |
51 | |
52 | === added file 'doc-pxc/source/howtos/ubuntu_howto.rst' |
53 | --- doc-pxc/source/howtos/ubuntu_howto.rst 1970-01-01 00:00:00 +0000 |
54 | +++ doc-pxc/source/howtos/ubuntu_howto.rst 2013-06-13 13:58:35 +0000 |
55 | @@ -0,0 +1,302 @@ |
56 | +.. _ubuntu_howto: |
57 | + |
58 | +Installing Percona XtraDB Cluster on *Ubuntu* |
59 | +============================================= |
60 | + |
61 | +This tutorial will show how to install the |Percona XtraDB Cluster| on three *Ubuntu* 12.04.2 LTS servers, using the packages from Percona repositories. |
62 | + |
63 | +This cluster will be assembled of three servers/nodes: :: |
64 | + |
65 | + node #1 |
66 | + hostname: pxc1 |
67 | + IP: 192.168.70.61 |
68 | + |
69 | + node #2 |
70 | + hostname: pxc2 |
71 | + IP: 192.168.70.62 |
72 | + |
73 | + node #3 |
74 | + hostname: pxc3 |
75 | + IP: 192.168.70.63 |
76 | + |
77 | +Prerequisites |
78 | +------------- |
79 | + |
80 | + * All three nodes have a *Ubuntu* 12.04.2 LTS installation. |
81 | + |
82 | + * Firewall has been set up to allow connecting to ports 3306, 4444, 4567 and 4568 |
83 | + |
84 | + * AppArmor profile for |MySQL| is `disabled <http://www.mysqlperformanceblog.com/2012/12/20/percona-xtradb-cluster-selinux-is-not-always-the-culprit/>`_ |
85 | + |
86 | +Installation |
87 | +------------ |
88 | + |
89 | +Percona repository should be set up as described in the :ref:`apt-repo` guide. Following command will install |Percona XtraDB Cluster| packages: :: |
90 | + |
91 | + $ apt-get install percona-xtradb-cluster-server-5.5 percona-xtradb-cluster-client-5.5 |
92 | + |
93 | +When these two commands have been executed successfully on all three nodes |Percona XtraDB Cluster| is installed. |
94 | + |
95 | +.. note:: |
96 | + |
97 | + Debian/Ubuntu installation prompts for root password, this was set to: ``Passw0rd``. After the packages have been installed, ``mysqld`` will be started automatically. In this example mysqld is stopped on all three nodes after successful installation with: ``/etc/init.d/mysql stop``. |
98 | + |
99 | +Configuring the nodes |
100 | +--------------------- |
101 | + |
102 | +Individual nodes should be configured to be able to bootstrap the cluster. More details about bootstrapping the cluster can be found in the :ref:`bootstrap` guide. |
103 | + |
104 | +Configuration file :file:`/etc/mysql/my.cnf` for the first node should look like: :: |
105 | + |
106 | + [mysqld] |
107 | + |
108 | + datadir=/var/lib/mysql |
109 | + user=mysql |
110 | + |
111 | + # Path to Galera library |
112 | + wsrep_provider=/usr/lib/libgalera_smm.so |
113 | + |
114 | + # Empty gcomm address is being used when cluster is getting bootstrapped |
115 | + wsrep_cluster_address=gcomm:// |
116 | + |
117 | + # Cluster connection URL contains the IPs of node#1, node#2 and node#3 |
118 | + #wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63 |
119 | + |
120 | + # In order for Galera to work correctly binlog format should be ROW |
121 | + binlog_format=ROW |
122 | + |
123 | + # MyISAM storage engine has only experimental support |
124 | + default_storage_engine=InnoDB |
125 | + |
126 | + # This is a recommended tuning variable for performance |
127 | + innodb_locks_unsafe_for_binlog=1 |
128 | + |
129 | + # This changes how InnoDB autoincrement locks are managed and is a requirement for Galera |
130 | + innodb_autoinc_lock_mode=2 |
131 | + |
132 | + # Node #1 address |
133 | + wsrep_node_address=192.168.70.61 |
134 | + |
135 | + # SST method |
136 | + wsrep_sst_method=xtrabackup |
137 | + |
138 | + # Cluster name |
139 | + wsrep_cluster_name=my_ubuntu_cluster |
140 | + |
141 | + # Authentication for SST method |
142 | + wsrep_sst_auth="sstuser:s3cretPass" |
143 | + |
144 | +.. note:: For the first member of the cluster variable :variable:`wsrep_cluster_address` should contain empty ``gcomm://`` when the cluster is being bootstrapped. But as soon as we have bootstrapped the cluster and have at least one more node joined that line can be removed from the :file:`my.cnf` configuration file and the one where :variable:`wsrep_cluster_address` contains all three node addresses. In case the node gets restarted and without making this change it will make bootstrap new cluster instead of joining the existing one. |
145 | + |
146 | +After this, first node can be started with the following command: :: |
147 | + |
148 | + [root@pxc1 ~]# /etc/init.d/mysql start |
149 | + |
150 | +This command will start the first node and bootstrap the cluster (more information about bootstrapping cluster can be found in :ref:`bootstrap` manual). |
151 | + |
152 | +After the first node has been started, cluster status can be checked by: |
153 | + |
154 | +.. code-block:: mysql |
155 | + |
156 | + mysql> show status like 'wsrep%'; |
157 | + +----------------------------+--------------------------------------+ |
158 | + | Variable_name | Value | |
159 | + +----------------------------+--------------------------------------+ |
160 | + | wsrep_local_state_uuid | b598af3e-ace3-11e2-0800-3e90eb9cd5d3 | |
161 | + ... |
162 | + | wsrep_local_state | 4 | |
163 | + | wsrep_local_state_comment | Synced | |
164 | + ... |
165 | + | wsrep_cluster_size | 1 | |
166 | + | wsrep_cluster_status | Primary | |
167 | + | wsrep_connected | ON | |
168 | + ... |
169 | + | wsrep_ready | ON | |
170 | + +----------------------------+--------------------------------------+ |
171 | + 40 rows in set (0.01 sec) |
172 | + |
173 | +This output shows that the cluster has been successfully bootstrapped. |
174 | + |
175 | +In order to perform successful :ref:`state_snapshot_transfer` using |XtraBackup| new user needs to be set up with proper `privileges <http://www.percona.com/doc/percona-xtrabackup/innobackupex/privileges.html#permissions-and-privileges-needed>`_: |
176 | + |
177 | +.. code-block:: mysql |
178 | + |
179 | + mysql@pxc1> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 's3cretPass'; |
180 | + mysql@pxc1> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost'; |
181 | + mysql@pxc1> FLUSH PRIVILEGES; |
182 | + |
183 | + |
184 | +.. note:: |
185 | + |
186 | + MySQL root account can also be used for setting up the :ref:`state_snapshot_transfer` with Percona XtraBackup, but it's recommended to use a different (non-root) user for this. |
187 | + |
188 | +Configuration file :file:`/etc/mysql/my.cnf` on the second node (``pxc2``) should look like this: :: |
189 | + |
190 | + [mysqld] |
191 | + |
192 | + datadir=/var/lib/mysql |
193 | + user=mysql |
194 | + |
195 | + # Path to Galera library |
196 | + wsrep_provider=/usr/lib/libgalera_smm.so |
197 | + |
198 | + # Cluster connection URL contains IPs of node#1, node#2 and node#3 |
199 | + wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63 |
200 | + |
201 | + # In order for Galera to work correctly binlog format should be ROW |
202 | + binlog_format=ROW |
203 | + |
204 | + # MyISAM storage engine has only experimental support |
205 | + default_storage_engine=InnoDB |
206 | + |
207 | + # This is a recommended tuning variable for performance |
208 | + innodb_locks_unsafe_for_binlog=1 |
209 | + |
210 | + # This changes how InnoDB autoincrement locks are managed and is a requirement for Galera |
211 | + innodb_autoinc_lock_mode=2 |
212 | + |
213 | + # Node #2 address |
214 | + wsrep_node_address=192.168.70.62 |
215 | + |
216 | + # Cluster name |
217 | + wsrep_cluster_name=my_ubuntu_cluster |
218 | + |
219 | + # SST method |
220 | + wsrep_sst_method=xtrabackup |
221 | + |
222 | + #Authentication for SST method |
223 | + wsrep_sst_auth="sstuser:s3cretPass" |
224 | + |
225 | +Second node can be started with the following command: :: |
226 | + |
227 | + [root@pxc2 ~]# /etc/init.d/mysql start |
228 | + |
229 | +After the server has been started it should receive the state snapshot transfer automatically. Cluster status can now be checked on both nodes. This is the example from the second node (``pxc2``): |
230 | + |
231 | +.. code-block:: mysql |
232 | + |
233 | + mysql> show status like 'wsrep%'; |
234 | + +----------------------------+--------------------------------------+ |
235 | + | Variable_name | Value | |
236 | + +----------------------------+--------------------------------------+ |
237 | + | wsrep_local_state_uuid | b598af3e-ace3-11e2-0800-3e90eb9cd5d3 | |
238 | + ... |
239 | + | wsrep_local_state | 4 | |
240 | + | wsrep_local_state_comment | Synced | |
241 | + ... |
242 | + | wsrep_cluster_size | 2 | |
243 | + | wsrep_cluster_status | Primary | |
244 | + | wsrep_connected | ON | |
245 | + ... |
246 | + | wsrep_ready | ON | |
247 | + +----------------------------+--------------------------------------+ |
248 | + 40 rows in set (0.01 sec) |
249 | + |
250 | +This output shows that the new node has been successfully added to the cluster. |
251 | + |
252 | +MySQL configuration file :file:`/etc/mysql/my.cnf` on the third node (``pxc3``) should look like this: :: |
253 | + |
254 | + [mysqld] |
255 | + |
256 | + datadir=/var/lib/mysql |
257 | + user=mysql |
258 | + |
259 | + # Path to Galera library |
260 | + wsrep_provider=/usr/lib/libgalera_smm.so |
261 | + |
262 | + # Cluster connection URL contains IPs of node#1, node#2 and node#3 |
263 | + wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63 |
264 | + |
265 | + # In order for Galera to work correctly binlog format should be ROW |
266 | + binlog_format=ROW |
267 | + |
268 | + # MyISAM storage engine has only experimental support |
269 | + default_storage_engine=InnoDB |
270 | + |
271 | + # This is a recommended tuning variable for performance |
272 | + innodb_locks_unsafe_for_binlog=1 |
273 | + |
274 | + # This changes how InnoDB autoincrement locks are managed and is a requirement for Galera |
275 | + innodb_autoinc_lock_mode=2 |
276 | + |
277 | + # Node #3 address |
278 | + wsrep_node_address=192.168.70.63 |
279 | + |
280 | + # Cluster name |
281 | + wsrep_cluster_name=my_ubuntu_cluster |
282 | + |
283 | + # SST method |
284 | + wsrep_sst_method=xtrabackup |
285 | + |
286 | + #Authentication for SST method |
287 | + wsrep_sst_auth="sstuser:s3cretPass" |
288 | + |
289 | +Third node can now be started with the following command: :: |
290 | + |
291 | + [root@pxc3 ~]# /etc/init.d/mysql start |
292 | + |
293 | +After the server has been started it should receive the SST same as the second node. Cluster status can now be checked on both nodes. This is the example from the third node (``pxc3``): |
294 | + |
295 | +.. code-block:: mysql |
296 | + |
297 | + mysql> show status like 'wsrep%'; |
298 | + +----------------------------+--------------------------------------+ |
299 | + | Variable_name | Value | |
300 | + +----------------------------+--------------------------------------+ |
301 | + | wsrep_local_state_uuid | b598af3e-ace3-11e2-0800-3e90eb9cd5d3 | |
302 | + ... |
303 | + | wsrep_local_state | 4 | |
304 | + | wsrep_local_state_comment | Synced | |
305 | + ... |
306 | + | wsrep_cluster_size | 3 | |
307 | + | wsrep_cluster_status | Primary | |
308 | + | wsrep_connected | ON | |
309 | + ... |
310 | + | wsrep_ready | ON | |
311 | + +----------------------------+--------------------------------------+ |
312 | + 40 rows in set (0.01 sec) |
313 | + |
314 | +This output confirms that the third node has joined the cluster. |
315 | + |
316 | +Testing the replication |
317 | +----------------------- |
318 | + |
319 | +Although the password change from the first node has replicated successfully, this example will show that writing on any node will replicate to the whole cluster. In order to check this, new database will be created on second node and table for that database will be created on the third node. |
320 | + |
321 | +Creating the new database on the second node: |
322 | + |
323 | +.. code-block:: mysql |
324 | + |
325 | + mysql@pxc2> CREATE DATABASE percona; |
326 | + Query OK, 1 row affected (0.01 sec) |
327 | + |
328 | +Creating the ``example`` table on the third node: |
329 | + |
330 | +.. code-block:: mysql |
331 | + |
332 | + mysql@pxc3> USE percona; |
333 | + Database changed |
334 | + |
335 | + mysql@pxc3> CREATE TABLE example (node_id INT PRIMARY KEY, node_name VARCHAR(30)); |
336 | + Query OK, 0 rows affected (0.05 sec) |
337 | + |
338 | +Inserting records on the first node: |
339 | + |
340 | +.. code-block:: mysql |
341 | + |
342 | + mysql@pxc1> INSERT INTO percona.example VALUES (1, 'percona1'); |
343 | + Query OK, 1 row affected (0.02 sec) |
344 | + |
345 | +Retrieving all the rows from that table on the second node: |
346 | + |
347 | +.. code-block:: mysql |
348 | + |
349 | + mysql@pxc2> SELECT * FROM percona.example; |
350 | + +---------+-----------+ |
351 | + | node_id | node_name | |
352 | + +---------+-----------+ |
353 | + | 1 | percona1 | |
354 | + +---------+-----------+ |
355 | + 1 row in set (0.00 sec) |
356 | + |
357 | +This small example shows that all nodes in the cluster are synchronized and working as intended. |
358 | |
359 | === modified file 'doc-pxc/source/index.rst' |
360 | --- doc-pxc/source/index.rst 2013-03-12 09:32:01 +0000 |
361 | +++ doc-pxc/source/index.rst 2013-06-13 13:58:35 +0000 |
362 | @@ -79,6 +79,7 @@ |
363 | :glob: |
364 | |
365 | howtos/cenots_howto |
366 | + howtos/ubuntu_howto |
367 | howtos/singlebox |
368 | howtos/3nodesec2 |
369 | howtos/haproxy |
370 | |
371 | === modified file 'doc-pxc/source/installation.rst' |
372 | --- doc-pxc/source/installation.rst 2013-03-12 09:32:01 +0000 |
373 | +++ doc-pxc/source/installation.rst 2013-06-13 13:58:35 +0000 |
374 | @@ -44,6 +44,8 @@ |
375 | |
376 | $ sudo apt-get install percona-xtradb-cluster-server-5.5 percona-xtradb-cluster-client-5.5 |
377 | |
378 | +More detailed example of the |Percona XtraDB Cluster| installation and configuration can be seen in :ref:`ubuntu_howto` tutorial. |
379 | + |
380 | Prerequisites |
381 | ============= |
382 | |
383 | |
384 | === modified file 'doc-pxc/source/limitation.rst' |
385 | --- doc-pxc/source/limitation.rst 2012-06-01 04:28:35 +0000 |
386 | +++ doc-pxc/source/limitation.rst 2013-06-13 13:58:35 +0000 |
387 | @@ -1,3 +1,5 @@ |
388 | +.. _limitations: |
389 | + |
390 | ==================================== |
391 | Percona XtraDB Cluster Limitations |
392 | ==================================== |
393 | @@ -6,8 +8,6 @@ |
394 | |
395 | - Currently replication works only with |InnoDB| storage engine. Any writes to tables of other types, including system (mysql.*) tables, are not replicated. However, DDL statements are replicated in statement level, and changes to mysql.* tables will get replicated that way. So, you can safely issue: CREATE USER..., but issuing: INSERT INTO mysql.user..., will not be replicated. |
396 | |
397 | - - DELETE operation is unsupported on tables without primary key. Also rows in tables without primary key may appear in different order on different nodes. As a result SELECT...LIMIT... may return slightly different sets. |
398 | - |
399 | - Unsupported queries: |
400 | * LOCK/UNLOCK TABLES cannot be supported in multi-master setups. |
401 | * lock functions (GET_LOCK(), RELEASE_LOCK()... ) |
402 | @@ -21,10 +21,7 @@ |
403 | |
404 | - XA transactions can not be supported due to possible rollback on commit. |
405 | |
406 | - - The write throughput of the whole cluster is limited by weakest node. If one node becomes slow, whole cluster is slow. If you have requirements for stable high performance, then it should be supported by corresponding hardware (10Gb network, SSD). |
407 | + - The write throughput of the whole cluster is limited by weakest node. If one node becomes slow, whole cluster is slow. If you have requirements for stable high performance, then it should be supported by corresponding hardware. |
408 | |
409 | - The minimal recommended size of cluster is 3 nodes. |
410 | |
411 | - - DDL statements are problematic and may stall cluster. Later, the support of DDL will be improved, but will always require special treatment. |
412 | - |
413 | - |
414 | |
415 | === modified file 'doc-pxc/source/wsrep-system-index.rst' |
416 | --- doc-pxc/source/wsrep-system-index.rst 2013-03-12 09:32:01 +0000 |
417 | +++ doc-pxc/source/wsrep-system-index.rst 2013-06-13 13:58:35 +0000 |
418 | @@ -13,8 +13,8 @@ |
419 | :default: TOI |
420 | |
421 | This variable can be used to select schema upgrade method. Available values are: |
422 | - * TOI - Total Order Isolation - When this method is selected ``DDL`` is processed in the same order with regards to other transactions in each cluster node. This guarantees data consistency. In case of ``DDL`` statements cluster will have parts of database locked and it will behave like a single server. In some cases (like big ``ALTER TABLE``) this could have impact on cluster's performance and high availability, but it could be fine for quick changes that happen almost instantly (like fast index changes). |
423 | - * RSU - Rolling Schema Upgrade - When this method is selected ``DDL`` statements won't be replicated across the cluster, instead it's up to the user to run them on each node separately. The node applying the changes will desynchronize from the cluster briefly, while normal work happens on all the other nodes. When the ``DDL`` statement is processed node will apply delayed replication events. The schema changes **must** be backwards compatible for this method to work, otherwise the node that receives the change will likely break Galera replication. If the replication breaks the SST will be triggered when the node tries to join again but the change will be undone. |
424 | + * TOI - Total Order Isolation - When this method is selected ``DDL`` is processed in the same order with regards to other transactions in each cluster node. This guarantees data consistency. In case of ``DDL`` statements cluster will have parts of database locked and it will behave like a single server. In some cases (like big ``ALTER TABLE``) this could have impact on cluster's performance and high availability, but it could be fine for quick changes that happen almost instantly (like fast index changes). When ``DDL`` is processed under total order isolation (TOI) the ``DDL`` statement will be replicated up front to the cluster. i.e. cluster will assign global transaction ID for the ``DDL`` statement before the ``DDL`` processing begins. Then every node in the cluster has the responsibility to execute the ``DDL`` in the given slot in the sequence of incoming transactions, and this ``DDL`` execution has to happen with high priority. |
425 | + * RSU - Rolling Schema Upgrade - When this method is selected ``DDL`` statements won't be replicated across the cluster, instead it's up to the user to run them on each node separately. The node applying the changes will desynchronize from the cluster briefly, while normal work happens on all the other nodes. When the ``DDL`` statement is processed node will apply delayed replication events. The schema changes **must** be backwards compatible for this method to work, otherwise the node that receives the change will likely break Galera replication. If the replication breaks the SST will be triggered when the node tries to join again but the change will be undone. |
426 | |
427 | .. variable:: wsrep_auto_increment_control |
428 | |
429 | @@ -172,7 +172,7 @@ |
430 | :default: 0 (no grouping) |
431 | :range: 0-1000 |
432 | |
433 | -This variable controls how many replication events will be grouped together. This implementation is still experimental. |
434 | +This variable controls how many replication events will be grouped together. Replication events are grouped in SQL slave thread by skipping events which may cause commit. This way the wsrep node acting in |MySQL| slave role and all other wsrep nodes in provider replication group, will see same (huge) transactions. This implementation is still experimental. This may help with the bottleneck of having only one |MySQL| slave facing commit time delay of synchronous provider. |
435 | |
436 | .. variable:: wsrep_node_address |
437 | |
438 | @@ -271,8 +271,7 @@ |
439 | :dyn: No |
440 | :default: 1 |
441 | |
442 | -This variable sets the number of times autocommitted transactions will be tried in the cluster if it encounters certification errors. In case there is a conflict, it should be safe for the cluster node to simply retry the statement without the client's knowledge with the hopes that it will pass the next time. This can be useful to help an application using autocommit to avoid the deadlock errors that can be triggered by replication conflicts. Note that the default 1 is not a retry, but the first try. Retries start when this variable is set to 2 or higher. |
443 | - |
444 | +This variable sets the number of times autocommitted transactions will be tried in the cluster if it encounters certification errors. In case there is a conflict, it should be safe for the cluster node to simply retry the statement without the client's knowledge with the hopes that it will pass the next time. This can be useful to help an application using autocommit to avoid the deadlock errors that can be triggered by replication conflicts. If this variable is set to ``0`` transaction won't be retried and if it is set to ``1`` it will be retried once. |
445 | |
446 | .. variable:: wsrep_slave_threads |
447 |
Regarding wsrep_retry_ autocommit, can you add this part
"if it is 0 it won't be retried and if it is 1 it will be retried once." to disambiguate?