summaryrefslogtreecommitdiff
path: root/sql/set_var.h
diff options
context:
space:
mode:
authorKristian Nielsen <knielsen@knielsen-hq.org>2017-03-14 12:54:10 +0100
committerKristian Nielsen <knielsen@knielsen-hq.org>2017-04-21 10:30:14 +0200
commit6a84473c28af10e072267bc811f280a49bdc8ca8 (patch)
treea2c5db3ee0997a1f5a4ee7e8771ecc739a850d0c /sql/set_var.h
parent3501a5356e7358c0accfd3465a0c2f66f9b87b70 (diff)
downloadmariadb-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