diff options
author | Kristian Nielsen <knielsen@knielsen-hq.org> | 2017-03-14 12:54:10 +0100 |
---|---|---|
committer | Kristian Nielsen <knielsen@knielsen-hq.org> | 2017-04-21 10:30:14 +0200 |
commit | 6a84473c28af10e072267bc811f280a49bdc8ca8 (patch) | |
tree | a2c5db3ee0997a1f5a4ee7e8771ecc739a850d0c /sql/set_var.h | |
parent | 3501a5356e7358c0accfd3465a0c2f66f9b87b70 (diff) | |
download | mariadb-git-6a84473c28af10e072267bc811f280a49bdc8ca8.tar.gz |
MDEV-12179: Per-engine mysql.gtid_slave_pos table
Intermediate commit.
This commit implements that record_gtid() selects a gtid_slave_posXXX table
with a storage engine already in use by current transaction, if any.
The default table mysql.gtid_slave_pos is used if no match can be found on
storage engine, or for GTID position updates with no specific storage
engine.
Table discovery of mysql.gtid_slave_pos* happens on initial GTID state load
as well as on every START SLAVE. Some effort is made to make this possible
without additional locking. New tables are added using lock-free atomics.
Removing tables requires stopping all slaves first. A warning is given in
the error log when a table is removed but a non-stopped slave still has a
reference to it.
If multiple mysql.gtid_slave_posXXX tables with same storage engine exist,
one is chosen arbitrarily to be used, with a warning in the error log. GTID
data from all tables is still read, but only one among redundant tables with
same storage engine will be updated.
Diffstat (limited to 'sql/set_var.h')
0 files changed, 0 insertions, 0 deletions