MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
Find a file
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
BUILD Disable rocksdb when building with ASAN 2018-01-27 14:39:33 +02:00
client MDEV-18204 Fix rocksdb incremental backup 2019-02-18 18:59:05 +01:00
cmake Merge branch '10.1' into 10.2 2019-02-19 16:47:45 +01:00
dbug Make debug multi thread safe 2017-10-26 13:49:55 +03:00
debian Deb: don't edit control file from inside rules file 2019-01-25 19:57:37 +01:00
Docs Grammatical errors of README-wsrep fixed. (#915) 2018-12-22 13:34:50 +04:00
extra MDEV-18669 mariabackup writes timestamp in version line 2019-02-21 00:06:08 +01:00
include MDEV-9519: Data corruption will happen on the Galera cluster size change 2019-02-26 07:45:11 +02:00
libmariadb@2c5aebb3bc C/C again 2019-02-08 16:38:39 +01:00
libmysqld Merge 10.1 into 10.2 2019-01-24 14:43:29 +02:00
libservices MDEV-11663 Create services for functionality used by plugins 2017-04-27 19:12:38 +02:00
man Fix BB failure: file INSTALL cannot find ... man/tokuft_logdump.1. 2018-09-01 15:06:16 +03:00
mysql-test MDEV-9519: Data corruption will happen on the Galera cluster size change 2019-02-26 07:45:11 +02:00
mysys MDEV-18204 - fixup 2019-02-19 07:31:25 +01:00
mysys_ssl MDEV-14567: CRYPTO_set_mem_functions fails in FIPS mode 2018-02-07 11:45:01 +01:00
pcre Merge branch '10.1' into 10.2 2018-05-10 13:01:42 +02:00
plugin Merge branch '10.1' into 10.2 2019-02-19 16:47:45 +01:00
randgen/conf
scripts Merge branch '10.1' into 10.2 2019-02-19 16:47:45 +01:00
sql MDEV-9519: Data corruption will happen on the Galera cluster size change 2019-02-26 07:45:11 +02:00
sql-bench MDEV-15448 Remove "innodb_additional_mem_pool_size" setting from my-innodb-heavy-4G.cnf file 2018-03-03 01:59:52 +02:00
sql-common Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
storage MDEV-9519: Data corruption will happen on the Galera cluster size change 2019-02-26 07:45:11 +02:00
strings MDEV-17454 JSON_VALID( '{"a":1]' ) evaluates to 1. 2018-11-12 01:50:07 +04:00
support-files Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
tests MDEV-16278: Missing DELETE operation in COM_STMT_BULK_STMT 2018-12-14 10:47:10 +01:00
unittest Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
vio MDEV-14781 - threadpool slowdown with slow ssl handshake. 2018-11-07 02:10:52 +01:00
win Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
wsrep Prevent building WSREP without INNODB 2018-02-15 15:00:46 +00:00
zlib postmerge rollbacks and fixes 2019-01-31 19:28:38 +01:00
.gitattributes Merge branch '10.0' into 10.1 2018-05-05 14:01:59 +02:00
.gitignore Merge 10.1 into 10.2 2018-11-06 08:41:48 +02:00
.gitmodules Use https instead of ssh(git@) for rocksdb submodule. 2016-11-15 10:00:19 -05:00
.travis.compiler.sh travis: add clang-5.0 2017-08-07 10:05:01 +04:00
.travis.yml travis: osx - xcode 8.3 -> 9.1 2017-10-31 11:21:28 +04:00
appveyor.yml Add some hints for finding bison on its usual locations on Windows. 2018-02-14 17:01:07 +00:00
BUILD-CMAKE various documentation updates 2012-06-18 16:57:58 -04:00
CMakeLists.txt Merge branch '10.1' into 10.2 2019-02-19 16:47:45 +01:00
config.h.cmake Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
configure.cmake Merge branch '10.1' into 10.2 2019-02-19 16:47:45 +01:00
COPYING
COPYING.thirdparty Correct FSF address 2017-03-10 18:21:29 +01:00
CREDITS Update contributors 2018-09-10 16:47:44 +04:00
EXCEPTIONS-CLIENT MDEV-5645 MariaDB-5.5.35 - references are made to an "EXCEPTIONS-CLIENT" file but it does not exist 2014-05-31 13:18:56 +02:00
INSTALL-SOURCE Update AskMonty and Atlassian references to MariaDB 2016-03-08 15:24:01 +02:00
INSTALL-WIN-SOURCE Update AskMonty and Atlassian references to MariaDB 2016-03-08 15:24:01 +02:00
KNOWN_BUGS.txt various documentation updates 2012-06-18 16:57:58 -04:00
README.md Merge 10.1 into 10.2 2018-11-06 08:41:48 +02:00
VERSION bump the VERSION 2019-02-11 10:43:57 -05:00

MariaDB: drop-in replacement for MySQL

MariaDB is designed as a drop-in replacement of MySQL(R) with more features, new storage engines, fewer bugs, and better performance.

MariaDB is brought to you by the MariaDB Foundation. Please read the CREDITS file for details about the MariaDB Foundation, and who is developing MariaDB.

MariaDB is developed by many of the original developers of MySQL who now work for the MariaDB Foundation and the MariaDB Corporation, and by many people in the community.

MySQL, which is the base of MariaDB, is a product and trademark of Oracle Corporation, Inc. For a list of developers and other contributors, see the Credits appendix. You can also run 'SHOW authors' to get a list of active contributors.

A description of the MariaDB project and a manual can be found at:

https://mariadb.org/

https://mariadb.com/kb/en/

https://mariadb.com/kb/en/mariadb-vs-mysql-features/

https://mariadb.com/kb/en/mariadb-versus-mysql-features/

https://mariadb.com/kb/en/mariadb-versus-mysql-compatibility/

As MariaDB is a full replacement of MySQL, the MySQL manual at http://dev.mysql.com/doc is generally applicable.

Help:

More help is available from the Maria Discuss mailing list https://launchpad.net/~maria-discuss and the #maria IRC channel on Freenode.

License:


NOTE:

MariaDB is specifically available only under version 2 of the GNU General Public License (GPLv2). (I.e. Without the "any later version" clause.) This is inherited from MySQL. Please see the README file in the MySQL distribution for more information.

License information can be found in the COPYING, COPYING.LESSER, and COPYING.thirdparty files.


Bug Reports:

Bug and/or error reports regarding MariaDB should be submitted at: https://jira.mariadb.org

For reporting security vulnerabilities see: https://mariadb.org/about/security-policy/

Bugs in the MySQL code can also be submitted at: https://bugs.mysql.com

The code for MariaDB, including all revision history, can be found at: https://github.com/MariaDB/server


Code status:

  • tests status travis-ci.org (10.2 branch)