mariadb/storage
Julius Goryavsky 2c734c980e MDEV-9519: Data corruption will happen on the Galera cluster size change
If we have a 2+ node cluster which is replicating from an async master
and the binlog_format is set to STATEMENT and multi-row inserts are executed
on a table with an auto_increment column such that values are automatically
generated by MySQL, then the server node generates wrong auto_increment
values, which are different from what was generated on the async master.

In the title of the MDEV-9519 it was proposed to ban start slave on a Galera
if master binlog_format = statement and wsrep_auto_increment_control = 1,
but the problem can be solved without such a restriction.

The causes and fixes:

1. We need to improve processing of changing the auto-increment values
after changing the cluster size.

2. If wsrep auto_increment_control switched on during operation of
the node, then we should immediately update the auto_increment_increment
and auto_increment_offset global variables, without waiting of the next
invocation of the wsrep_view_handler_cb() callback. In the current version
these variables retain its initial values if wsrep_auto_increment_control
is switched on during operation of the node, which leads to inconsistent
results on the different nodes in some scenarios.

3. If wsrep auto_increment_control switched off during operation of the node,
then we must return the original values of the auto_increment_increment and
auto_increment_offset global variables, as the user has set. To make this
possible, we need to add a "shadow copies" of these variables (which stores
the latest values set by the user).

https://jira.mariadb.org/browse/MDEV-9519
2019-02-26 07:45:11 +02:00
..
archive Merge branch '10.1' into 10.2 2018-06-21 23:47:39 +02:00
blackhole
cassandra
connect CONNECT: update test results 2019-02-10 00:21:43 +01:00
csv Merge branch '10.0' into 10.1 2018-06-12 18:55:27 +03:00
example
federated Merge branch '10.1' into 10.2 2018-06-21 23:47:39 +02:00
federatedx Merge branch '10.1' into 10.2 2018-06-21 23:47:39 +02:00
heap Merge 10.1 into 10.2 2018-11-06 08:41:48 +02:00
innobase MDEV-9519: Data corruption will happen on the Galera cluster size change 2019-02-26 07:45:11 +02:00
maria Merge 10.1 into 10.2 2019-02-19 11:15:10 +02:00
mroonga MDEV-14576 Include full name of object in message about incorrect value for column. 2018-12-16 02:21:41 +04:00
myisam Merge tag 'mariadb-10.0.36' into 10.0-galera 2018-08-02 11:44:02 +03:00
myisammrg Merge 10.1 into 10.2 2018-11-06 08:41:48 +02:00
oqgraph Merge 10.1 into 10.2 2018-04-24 09:39:45 +03:00
perfschema Merge 10.1 into 10.2 2018-11-06 08:41:48 +02:00
rocksdb fix RHEL8 "ambiguous python shebang" build failures 2019-01-03 00:23:06 +01:00
sequence
sphinx MDEV-16544 - crash in ha_sphinx::create() 2018-08-04 22:53:16 +01:00
spider fixed auto-merge gone bad 2018-09-24 20:37:22 +02:00
test_sql_discovery
tokudb Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
xtradb Merge 10.1 into 10.2 2019-02-18 22:21:02 +02:00