<Insert Picture Here>
New features in MySQL Replication Lars Thalmann, Development - - PowerPoint PPT Presentation
New features in MySQL Replication Lars Thalmann, Development - - PowerPoint PPT Presentation
<Insert Picture Here> New features in MySQL Replication Lars Thalmann, Development Manager, Replication & Backup Mats Kindahl, Lead Developer, Replication & Plugins MySQL User Conference 2010 Topics Replication features in
Topics
- Replication features in MySQL 5.1
Generally Available release Nov 2008
- New replication features in MySQL 5.5.2
Development release Feb 2010
- New replication features in MySQL 5.5.3
Development release Apr 2010
- Ongoing projects
Replication features in MySQL 5.1
- 1. Row-based replication
New event types, binlog formats Automatic engine capability control of logging formats
- 2. MySQL Cluster replication
Incident events, binlog injection, replication state tables
- 3. Safe slave skipping
Skips complete transactions
- 4. Safe replication of unsafe (non-deterministic) statements
In MIXED format, use row-based replication for unsafe statements In STATEMENT format, warn about unsafe statements
- 5. Replication of event definitions
Replicated as slave-side-disabled Deprecated configuration options Over 250 replication bugs closed at initial release time
New replication features in MySQL 5.5.2
- 1. Semisynchronous replication
Improved resilience by having master wait for slave to persist events
- 2. Slave fsync tuning
Fine tune fsyncs so that corruption is less likely on slave crashes
- 3. Automatic relay log recovery
Let the slave to recover from corrupted relay logs
- 4. Replication Heartbeat
Avoid spurious relay log rotation when the master is idle. Have a more precise failure detection mechanism
- 5. Show relay logs
View relay log contents by issuing 'SHOW RELAYLOG EVENTS'.
- 6. Per server replication filtering
Instruct slave to discard events from a master with a specific server id.
Originally developed by Mark Callaghan and Wei Li, Google Modularized, tested, and bug fixed by Zhenxing He, MySQL
Application
MySQL Server
SE2 SE1
Storage Engines Master
Binlog
Replication
MySQL Server
Application
Slave
Relay Binlog
L R R A SE2 SE1
Storage Engines Logging/ Replication Semi-Sync Replicator Relay Log/ Applier Semi-Sync Receiver Ack
Available as two separate loadable components for the master and the slave
- 1. Semisynchronous Replication
- MySQL replication is asynchronous
Transactions may be lost if master cannot recover from crash. When master fails, it may have transactions not replicated to slave
- Semi-synchronous replication ensure redundancy
Each transaction is safely transmitted to slave before the commit returns
- Fully synchronous replication would be slower
It would affect performance more significantly. Semi-sync is a compromise
- 1. Semisynchronous Replication
- At least one slave receives the events before commit
returns
- The master waits for the acknowledgement using a time-out
- Automatically disables semi-sync on time-out, and then
enables semi-sync when slave catch up
MySQL did:
- Merged to MySQL 5.5, removed dependency on InnoDB
- Defined interfaces and implemented as plugins
- Testing and bug fixing
Google did:
- 1. Semisynchronous Replication
- On master
– INSTALL PLUGIN 'rpl_semi_sync_master' SONAME 'semisync_master.so'; – SET rpl_semi_sync_master_enabled=1; – SET rpl_semi_sync_master_timeout=1000; (1s, default 10ms)
- On slave
– INSTALL PLUGIN 'rpl_semi_sync_slave' SONAME 'semisync_slave.so'; – SET rpl_semi_sync_slave_enabled=1; – START SLAVE;
- 1. Semisynchronous Replication
- On master
– Rpl_semi_sync_master_status – Rpl_semi_sync_master_clients – Rpl_semi_sync_master_yes_tx – Rpl_semi_sync_master_no_tx
- On Slave
– Rpl_semi_sync_slave_status
Checking the state
- 1. Semisynchronous Replication
Three new variables: sync_relay_log_info, sync_master_info, sync_relay_log
- sync_relay_log_info > 0
Synchronize relay-log.info file to disk after that many transactions
- sync_relay_log_info = 1
Generally the best choice
- sync_relay_log_info = 0
- Default. Does not force any synchronization to disk.
Server relies on operating system to flush the relay-log.info file
- 2. Slave fsync tuning
- sync_master_info = 0
- Default. Recommended in most situations.
- sync_master_info > 0
Slave synchronize master info after that many transactions.
- sync_relay_log = 0
- Default. OS responsible for syncing relay log to disk
- sync_relay_log = 1
The safest choice. In the event of a crash you lose at most
- ne statement or transaction from the relay log.
Also slowest choice. (Unless the disk has a battery-backed cache, which makes synchronization very fast).
- 2. Slave fsync tuning
relay_log_recovery = 1 On restart, slave discards all unprocessed relay logs (and retrieves them from master). This can be used after a slave crash to ensure that potentially corrupted relay logs are not processed. The default value is 0 (disabled).
- 3. Automatic Relay Log Recovery
MySQL Server
SE2 SE1
Master
Binlog
Replication
MySQL Server
SE2 SE1
Slave
Relay Binlog Binlog
I/O thread
- Automatic checking of connection status
- No more relay log rotates when the master is idle
- Detection of master/slave disconnect configurable in millisecs
CHANGE MASTER SET master_heartbeat_period= val; SHOW STATUS like 'slave_heartbeat period' SHOW STATUS like 'slave_received_heartbeats'
- 4. Replication Heartbeat
Heartbeat
- 5. SHOW RELAYLOG EVENTS
master> use test; master> CREATE TABLE t1 (a int); master> INSERT INTO t1 VALUES (1), (2), (3); slave> START SLAVE; slave> SHOW RELAYLOG EVENTS IN 'slave-relay-bin.000002';
+------------------------+-----+-------------+-----------+-------------+-------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------------+-----+-------------+-----------+-------------+-------------------------------------------------+ | slave-relay-bin.000002 | 4 | Format_desc | 2 | 107 | Server ver: 5.1.40-debug-log, Binlog ver: 4 | | slave-relay-bin.000002 | 107 | Rotate | 1 | 0 | master-bin.000001;pos=4 | | slave-relay-bin.000002 | 151 | Format_desc | 1 | 107 | Server ver: 5.1.40-debug-log, Binlog ver: 4 | | slave-relay-bin.000002 | 254 | Query | 1 | 193 | use `test`; CREATE TABLE t1 (a int) | | slave-relay-bin.000002 | 340 | Query | 1 | 291 | use `test`; INSERT INTO t1 VALUES (1), (2), (3) | +------------------------+-----+-------------+-----------+-------------+-------------------------------------------------+
Circular replication
The originating server acts as the terminator of its own events: When an event from A reaches A again, it is removed.
MySQL Server C MySQL Server A MySQL Server B MySQL Server D
- 6. Per server replication filtering
If server A is removed from the circle, then there can be events from A circulating indefinitely.
MySQL Server C MySQL Server A MySQL Server B MySQL Server D
- 6. Per server replication filtering
Circular replication
If server A is removed from the circle, server B can be set to terminate A's events in the new circle Server B> CHANGE MASTER TO MASTER_HOST=C ... IGNORE_SERVER_IDS=(A)
MySQL Server C MySQL Server A MySQL Server B MySQL Server D
- 6. Per server replication filtering
New replication features in MySQL 5.5.3
- 7. Precise Slave Type Conversions
Use different types on master and slave and get automatic type promotion and demotion when using RBR
- 8. Individual Log Flushing
Selectively flush server logs when using 'FLUSH LOGS'
- 9. Safe logging of mixed transactions
Replicate transactions containing both InnoDB and MyISAM changes
- 7. Precise Slave Type Conversions
- MySQL 5.1 statement-based: Conversions supported
– Statements executed on slave without checks
master> CREATE TABLE foo (a INT); slave> CREATE TABLE foo (a TINYINT); master> INSERT INTO foo VALUES (1); slave> <<<success>>>
- MySQL 5.1 row-based: Conversions not supported
– Column types must be the same
master> CREATE TABLE foo (a INT); slave> CREATE TABLE foo (a TINYINT); master> INSERT INTO foo VALUES (1); slave> <<<error>>>
- 7. Precise Slave Type Conversions
New variable SLAVE_TYPE_CONVERSIONS Variable is a “set”. Slave must be restarted for variable to have effect Default value is empty set (types must be identical on master and slave) ALL_NON_LOSSY – enable conversions to types with larger domain ALL_LOSSY – enable conversions to types with smaller domain e.g. INT ==> TINY, but *not* TINY ==> INT. Lossy conversions are implemented by either truncation or rounding depending on the type Conversions within Integer, Decimal, String, Binary, BIT, ENUM, and SET domains are supported. Conversions are not done between domains
- 7. Precise Slave Type Conversions
- The column types on master and slave determine the rules for
- conversion. The values are not considered.
- Example, SLAVE_TYPE_CONVERSIONS = 'ALL_LOSSY'):
master> CREATE TABLE foo (a INT); slave> CREATE TABLE foo (a TINYINT); master> INSERT INTO foo VALUES (1); slave> <<<success>>>
- Example, SLAVE_TYPE_CONVERSIONS = '':
master> CREATE TABLE foo (a INT); slave> CREATE TABLE foo (a TINYINT); master> INSERT INTO foo VALUES (1); slave> <<<error>>>
Flush of individual logs: FLUSH <log_type> LOGS; Examples: FLUSH ERROR LOGS, RELAY LOGS; FLUSH BINARY LOGS, ENGINE LOGS, SLOW LOGS; Log types supported:
- SLOW - close & reopen the slow query log file.
- ERROR - close & reopen the error log file.
- BINARY - close & reopen the binary log files.
- ENGINE - close & reopen any flushable logs for installed
storage engines
- GENERAL - close & reopen the general query log file
- RELAY - close & reopen the relay log files
- 8. Individual log flushing
MySQL 5.1 Replication Architecture
Client I
MySQL Server
Client II MyIsam Innodb
Storage Engines Master
Binlog
TXN-CACHE TXN-CACHE
Mixing InnoDB and MyISAM changes in the same transaction can cause slave to be inconsistent with the master
- MyISAM changes are visible
immediately when statement ends
- Transactional cache is flushed at
commit time
- 9. Safe logging of mixed transactions
Client I Client II MyIsam Innodb
Storage Engines
Binlog
TXN-CACHE TXN-CACHE TXN-CACHE STMT-CACHE
- 9. Safe logging of mixed transactions
MySQL 5.5 Replication Architecture
Mixing InnoDB and MyISAM changes in the same transaction is correctly serialized in the binary log for MIXED and ROW formats
- MyISAM changes written to the
binary log as soon as the statement ends
- Each thread has 2 caches
- For MIXED and ROW formats, mixing MyISAM and InnoDB is always
correctly serialized in binary log
- For STATEMENT format, an option “binlog-direct-non-transactional-
updates” can be used to ensure that MyISAM statements are always immediately written to the bianry log. It is not generally recommended to use this option.
- Other consequences of this work
- Improved performance by reducing number of binlog mutexes
- Binlog updates always wrapped by BEGIN-COMMIT/ROLLBACK
- Closed 13 bugs
- 9. Safe logging of mixed transactions
Future
1. Server UUIDs Unique server ids making it easier to analyze replication topologies 2. Remote backup of binary logs using mysqlbinlog tool Retrieve the binary log from master 3. Options for writing full or partial row images in RBR Optimize for performance, disk size, or functionality 4. Modular replication architecture Use different replication tools to replicate to/from a MySQL server 5. Replication checksums Detect transmission or disk corruptions
Future
6. Transactional replication information Automatically recover from a slave crash 7. Informational events Original statement for RBR, User and IP of statement executor, engine-dependent information 8. Scriptable replication Write your own plugin (e.g. replication filtering on data or statement type, extraction of data, pre-heating of caches) 9. Information schema for replication state Query the state instead of using show commands
- 10. Preallocated binlog files
Improve performance by not having to append to files
Future
- 11. DTrace replication probes
Internal performance monitoring and debugging
- 12. Multi-threaded slave for higher performance
Reduce possibility for slave to lag behind master
- 13. High resolution replication delay measurement
IO and SQL delay separately measured in milliseconds
- 14. Improved built-in filtering of MIXED mode
Always filter on actually modified database
BUG#49618 Field length stored incorrectly in binary log for InnoDB BUG#51089 SHOW STATUS LIKE 'Slave_running' is not compatible with `SHOW SLAVE ST BUG#42576 Relay logs in relay-log.info&localhost- relay-bin.index not processed a BUG#48993 valgrind errors in mysqlbinlog BUG#51055 Replication failure on duplicate key + traditional SQL mode BUG#51226 mysqlbinlog replay: ERROR 1146 when using temp tables + failing statem BUG#51251 Wrong binlogging in case of TRUNCATE <temporary InnoDB table> BUG#46931 rpl.rpl_get_master_version_and_clock fails on hpux11.31 BUG#50095 Multi statement including CREATE EVENT causes rotten binlog entry BUG#50407 mysqlbinlog --database=X produces bad output for SAVEPOINTs BUG#45576 rpl_row_create_table fails on PB2 BUG#38173 " Field doesn't have a default value " with row-based replication BUG#48776 row based replication breaks with spatial / geometry types, cause cras BUG#49836 Replication of geometric fields is broken after WL#5151 BUG#49481 RBR: MyISAM and bit fields may cause slave to stop on delete: cant fin BUG#49482 RBR: Replication may break on deletes when MyISAM tables + char field BUG#50018 binlog corruption when table has many columns BUG#51787 Assertion `(n % 4) == 0' on slave upon INSERT into a table with UTF32 BUG#47175 failing INSERT, transaction, replication out of sync BUG#50038 Deadlock on flush logs with concurrent DML and RBR BUG#40278 Replication failure on RBR + MyISAM + SAVEPOINTs BUG#43789 different master/slave table defs cause crash: text/varchar null vs no BUG#47741 rpl_ndb_extraCol fails in next-mr (mysql-5.1-rep+2) in RBR BUG#48091 valgrind errors when slave has double not null and master has double n BUG#49132 Replication failure on temporary table + DDL BUG#47418 RBR fails, failure with mixup of base/temporary/view TABLE DDL BUG#48350 truncate temporary table crashes replication BUG#51621 DROP VIEW on a nonexistent view on a master causes replication to brea BUG#49873 Replication thread exiting (Error 1364) - field doesn't have default v BUG#37187 `INFORMATION_SCHEMA`.`GLOBAL_VARIABLES`: inconsistent status BUG#20413 sql_slave_skip_counter is not shown in show variables BUG#51835 Slave not starting after calling "start slave" BUG#28595 DROP TABLE without USE TABLE not replicated BUG#51663 Unable to connect to remote mysql server for replication using ssl aft BUG#52185 master-master-slave replication recovery BUG#51194 relay_log_space being reported as gigantic BUG#39934 Slave stops for engine that only support row-based logging BUG#37148 Most callers of mysql_bin_log.write ignore the return result BUG#48463 backporting from 6.0-rpl to celosia a set of bugs BUG#50192 Strange effect in replication test, trigger, auto_increment BUG#47210 first execution of "start slave until" stops too early BUG#47142 "slave start until" stops 1 event too late in 4.1 to 5.0 replication BUG#38240 crash in rotate_relay_log during 'flush logs' and 'kill' or shutdown o BUG#51398 Test "rpl_heartbeat_basic" fails "while waiting for slave_received_he BUG#45825 INSERT DELAYED is not unsafe: logged in statement format BUG#45785 LIMIT in function does not cause RBL if binlog_format=MIXED BUG#47995 Mark system functions as unsafe BUG#49222 Mark RAND() as unsafe BUG#48351 Inconsistent library names for semisync plugin BUG#49894 shifted MYSQL_REPLICATION_PLUGIN number BUG#49557 "semisync" plugin test fails on Windows BUG#51014 mysqld continues operation without logging when binlogs cannot be writ BUG#51019 crash/invalid memory accesses after an error occurs with binlogging BUG#50451 rpl_loaddata_concurrent fails sporadically BUG#23300 Slow query log on slave does not log slow replicated statements BUG#48632 Fix for Bug #23300 Has Not Been Backported To 5.x Release BUG#50620 Adding an index to a table prevents slave from logging into slow log BUG#50364 FLUSH LOGS crashes the server (rpl.rpl_heartbeat_basic fails in PB spo BUG#44188 STOP SLAVE should flush info files and relay logs. BUG#40611 MySQL cannot make a binary log after sequential number beyond unsigned BUG#49259 Slave I/O thread could not register on master BUG#51021 current_stmt_binlog_row_based not removed in next-mr BUG#49119 Master crashes when executing 'REVOKE ... ON {PROCEDURE|FUNCTION} FROM BUG#48738 Backport patch for BUG#34582 to 5.0 codebase. BUG#48357 SHOW BINLOG EVENTS: Wrong offset or I/O error BUG#48340 rpl_cross_version: Found warnings/errors in server log file! BUG#42829 binlogging enabled for all schemas regardless of binlog-db-db / binlog BUG#47743 rpl.rpl_log_pos fails sporadically BUG#48297 Schema name is ignored when LOAD DATA is written into binlog, replicat BUG#49479 Slave stops with syntax error: LOAD DATA event without escaped field n BUG#44938 Replication fails when optimizing a table used by pending transaction. BUG#49562 SBR out of sync when using numeric data types + user variable BUG#51716 Char column with utf16 character set gives wrong padding on slave BUG#51426 User var unsigned_flag value not preserved until binlog time BUG#45292 orphan binary log created when starting server twice BUG#46364 MyISAM transbuffer problems (NTM problem) BUG#39675 rename tables on innodb tables with pending transactions causes slave BUG#12815 Replication breaks if one drops FUNCTION when it is pre-loaded by othe BUG#50414 valgrind warnings: invalid file descriptor -1 in syscall write()/read( BUG#49984 Test 'rpl_loaddata_symlink' fails with "Could not find target log" BUG#45827 Stmt using two autoinc values does not produce unsafe warning BUG#47863 binlog_format should be writable only at transaction boundaries BUG#45855 row events in binlog after switch from binlog_fmt=mix to stmt with ope BUG#45856 can't switch from binlog_format=row to mix with open tmp tbl BUG#49137 Replication failure on SBR/MBR + multi-table DROP TEMPORARY TABLE BUG#48742 Replication: incorrect help text for --init-slave BUG#34739 unexpected binlog file name when --log-bin is set to a directory name BUG#13963 SHOW SLAVE HOSTS is unreliable BUG#50157 Assertion !active_tranxs_- >is_tranx_end_pos(..) in ReplSemiSyncMaster: BUG#45516 SQL thread does not use database charset properly BUG#48542 Implicit drops on temporary tables aren't always replicated to slaves BUG#28421 Infinite loop on slave relay logs BUG#34628 LOAD DATA CONCURRENT INFILE drops CONCURRENT in binary log BUG#48216 Replication fails on all slaves after upgrade to 5.0.86 on master BUG#48506 crash in CREATE TABLE <existing_view> IF NOT EXISTS LIKE wit | BUG#50172 The 'CREATE USER' statement is binlogged with plaintext password BUG#42150 binlog_start_comment.test failed: Error writing file 'UNOPENED' BUG#48308 binlog_auto_increment_bug33029 fails on PB2: "Could not find target... BUG#49740 rpl.rpl_temporary fails in PB2 in mysql-trunk-merge BUG#52220 rpl_show_slave_running fails on some platforms BUG#45520 rpl_killed_ddl fails sporadically in pb2 BUG#49492 rpl_semi_sync failed on PB2 BUG#47017 rpl_timezone fails on PB-2 with mismatch error BUG#44779 binlog.binlog_max_extension may be causing failure on next test in PB BUG#51190 rpl.rpl_slave_load_remove_tmpfile fails if 'var' is a symlink BUG#47639 The rpl_binlog_corruption test fails on Windows BUG#47983 rpl_extraColmaster_myisam failed in PB2 with "Found warnings!!" BUG#44958 Setting read_only won't succeed if tx is already started in different BUG#50473 rpl_sync fails on windows debug enabled binaries BUG#50474 rpl_slave_load_remove_tmpfile failed on windows debug enabled binary BUG#50767 Some RPL tests started to fail in next-mr-merge on Linux x86_64 debug BUG#50442 MTR check for rpl_sync fails BUG#50061 Test "rpl_loaddata_symlink" uses a Unix-specific "run-slave" script BUG#43913 rpl_cross_version can't pass on conflicts complainig clash with --sla BUG#49191 rpl_get_master_version_and_clock failed on PB2: COM_REGISTER_SLAVE fai BUG#35319 Almost certain crash(es) of mysqld with the "rpl*" tests from mysql-te BUG#45578 Test binlog_tmp_table fails ramdonly on PB2: Unknown table 't2' BUG#46827 rpl_circular_for_4_hosts failed on PB-2 BUG#50760 rbr+myisam+npk+update to/from NULL -> Slave stops with HA_ERR_END_OF_ BUG#50862 mysql_upgrade breaks replication BUG#49635 rename table db1.tbl to db2.tbl does not always get logged in the bina BUG#50429 ASCII function in WHERE clause is causing incorrect updates/deletes on BUG#50577 ERROR 1594 : Relay log read failure: Could not parse relay log event e BUG#47880 Equal sign in where clause gets distorted on the slave BUG#42757 Redundant use of LOCK_log in MYSQL_BIN_LOG::write(Log_event*) BUG#30431 SHOW BINLOG EVENTS should show last log by default BUG#50413 insert on duplicate key update sometimes writes binlog position incorr BUG#50332 ORDER BY RAND() with explicit RAND_SEEDs produces different results BUG#50060 "semi_sync" plugin crashes the server on AIX BUG#37145 Killing a statement doing DDL may log binlog event with error code 105 BUG#49020 Semi-sync master crashed with free_pool == NULL, assertion `free_pool BUG#48608 mysql replication slave trigger auto_increment columns BUG#38038 rpl_ndb.rpl_ndb_row_001 times out sporadically BUG#47477 PB2: rpl_start_stop_slave failures BUG#47982 rpl_auto_increment failed on PB2 BUG#8693 Test 'rpl_log_pos' fails sometimes BUG#50984 check_testcase fails for rpl_tmp_table_and_DDL BUG#46825 rpl_commit_after_flush test fails on PB-2 BUG#47322 handler error HA_ERR_KEY_NOT_FOUND; BUG#31502 5.1.20 -> 5.1.22 Slave crashes if it gets an event w/ data for non-ex BUG#48815 Slave stops with error code 1644 but row event executed by SQL thread BUG#50117 With bin logging enabled, the tick character is omitted. BUG#49545 Replication playing up BUG#48296 binary log corrupted when now() is used BUG#50460 Grant and/or revoke not replicating if not connected to base `mysql` BUG#50597 Replication breaks between master/slave with lower_case_table_names BUG#39171 view table replication problem(mysql version 5.0.67) BUG#45826 More than one unsafe-warning per stmt can be returned to client BUG#48847 bin logging does not quote column names or removes quotes BUG#47327 ROLLBACK TO SAVEPOINT binlogged if trx contains non-trx updates before BUG#50160 Server with semi-sync replication crashes in ActiveTranx::is_tranx_end BUG#50163 Server with semi-sync crashes in ActiveTranx::clear_active_tranx_nodes BUG#50045 Binlog related tests fail when using gcc 4.4 BUG#48465 rpl000012 failed on PB2 BUG#47161 rpl_backup_shutdown fails sporadically on PB2 BUG#47646 rpl.rpl_innodb_bug30888 fails sporadically on Solaris BUG#39570 rpl_truncate_2myisam timeouts sporadically on pushbuild BUG#47312 RBR: Disabling key on slave breaks replication: HA_ERR_WRONG_INDEX BUG#47678 Changes to n-tables that happen early in a trans. are only flushed upo BUG#43784 assert or broken replication with geometrycollection and decimal colum BUG#46640 output from mysqlbinlog command in 5.1 breaks replication BUG#42914 No LAST_IO_ERROR for max_allowed_packet errors BUG#45999 row based replication fails when auto_increment field = 0 BUG#46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior in BUG#49474 Replication from 4.0 to 5.1 broken BUG#49689 Truncate table get passed in row based replication but table doesn't e BUG#20408 Switching binlog can cause mysql to hang BUG#49841 Bug in master Master Replication BUG#38989 Slave can not replay relay logs again BUG#40796 Crash due to heap corruption in rpl.rpl_extraColmaster_myisam BUG#32407 Impossible to do point-in-time recovery from older binlog BUG#47323 mysqlbinlog --verbose displays bad output when events contain subset o BUG#47927 Replication fails when executing random queries in server BUG#49652 LOAD DATA - missing schema name in binlog can break replication BUG#17871 swithing to RBR in mixed mode replication for queries with SYSDATE() BUG#34582 FLUSH LOGS does not close and reopen the binlog index file BUG#49186 Concurrent insert/select causes slave abort if select is under read co BUG#47287 RBR: replication diff on basic case with txn- and non-txn tables in a BUG#49620 Repl diff with concurrent transactions with trigger+savepoint+lock wai BUG#42851 Spurious "Statement is not safe to log in statement format." warnings BUG#47151 Replication failure on highly concurrent DROP DATABASE and othe DDL BUG#48369 Replication is broken between mysql 4.0 and mysql 5.1 BUG#48905 Intermittent server crash when running test 'rpl.rpl_row_create_table' BUG#45677 Slave stops with Duplicate entry for key PRIMARY when using trigger BUG#46998 mysqlbinlog can't output BEGIN even if the database is included in a t BUG#43579 mysql_upgrade tries to alter log tables on replicated database BUG#45574 CREATE IF NOT EXISTS is not binlogged if the object exists BUG#47014 rpl_drop_temp fails on PB-2 with results mismatch BUG#47016 rpl_do_grant fails on PB-2 with a failing connect BUG#46828 rpl_get_master_version_and_clock fails on PB-2 BUG#42984 rpl.rpl_ssl1 fails in PB2 BUG#45581 Test rpl_row_sp006_InnoDB fails randomly: Unknown database 'mysqltest1 BUG#48635 Replication doesn't divide accurate when using "Replicate_Do_DB" BUG#30703 SHOW STATUS LIKE 'Slave_running' is not compatible with `SHOW SLAVE ST BUG#48147 binlog-ignore-db unexpected behaviour BUG#47926 Slave replication fails soon after starting BUG#48827 Replication for Innodb BUG#40116 Uncommited changes are replicated and stay on slave after rollback on BUG#37221 SET AUTOCOMMIT=1 does not commit binary log BUG#29288 myisam transactions replicated to a transactional slave leaves slave BUG#45132 Replication failure: 'Table doesn't exist' on slave BUG#45673 Semisynch reports correct operation even if no slave is connected BUG#45672 Semisync repl: ActiveTranx:insert_tranx_node: transaction node allocat BUG#45819 Semisynchronous replication: unstable operation with row-based binlog BUG#45848 Semisynchronous replication internals are visible in SHOW PROCESSLIST BUG#45973 rpl_semi_sync fails in valgrind platform with warnings BUG#42244 Segmentation fault at rpl_handler.h BUG#44058 Possible semi-sync replication bugs BUG#47298 Semisync: always wait until timeout if no semi-sync slave available BUG#12190 CHANGE MASTER has differ path requiremts on MASTER_LOG_FILE and RELAY_ BUG#34227 Replication permission error message is misleading BUG#45852 Semisynch: Last_IO_Error: Fatal error: Failed to run 'after_queue_even BUG#45674 FLUSH STATUS does not reset semisynchronous counters BUG#35542 Add option to sync master and relay log to disk after every event BUG#31665 sync_binlog should cause relay logs to be synchronized BUG#41613 Slave I/O status inconsistent between SHOW SLAVE STATUS and START SLAV BUG#42928 binlog-format setting prevents server from start if binary logging is BUG#28777 SHOW BINLOG EVENTS does not work on relay log files BUG#28796 CHANGE MASTER TO MASTER_HOST="" leads to invalid master.info BUG#34600 Rolled-back punch transactions not replicated correctly BUG#44663 Unused replication options prevent server from starting. BUG#40337 Fsyncing master and relay log to disk after every event is too slow BUG#48135 Test rpl.rpl_get_master_version_and_clock 'row' failed on Windows BUG#39012 rpl.rpl_locktrans_myisam fails on pushbuild, on sles10-ia64-a BUG#42891 RPL tests do not clean up after themselves BUG#47749 rpl_slave_skip fails sporadically on PB2 (mysql-5.1-rep+2 tree). BUG#43075 rpl.rpl_sync fails sporadically on pushbuild BUG#45747 DBUG_CRASH_* is not setting the strict option
Something else we worked on?
BUG#47103 RBR slave crash in table_def::type when modifying a merge table BUG#47144 replication stoped BUG#46793 Slave Fail with "Errno: 1594,Relay log read failure" BUG#47854 Replication not working when using database.table in statements BUG#48065 Replication has been setup, but the data is not sync to BUG#47425 replication breaks with Illegal mix of collations BUG#48154 Replication Insert into select from BUG#48277 binlog reports error on inserts BUG#21869 Rpl_recovery_rank: Remove variable without function BUG#47307 slave breaks if larger session group_concat_max_len is set on master BUG#47160 rpl_binlog_max_cache_size fails sporadically on PB2 BUG#37223 PURGE MASTER LOGS command hangs in cluster replication BUG#44041 ALTER DATABASE change default COLLATION for following stmts of other D BUG#39993 set binlog- do-db parameter by command line BUG#48079 Add dynamic variables for parameters replicate- do-db, replicate- ignore BUG#45521 rpl_slave_skip fails in pb2 BUG#48016 rpl_semi_sync.test is skipped for platforms that support plugin on PB2 BUG#38226 mysqlbinlog At line 232: command "$MYSQL_BINLOG ... failed BUG#33670 binlog_stm_ctype_cp932 test fails under Falcon BUG#45243 crash on win in sql thread clear_tables_to_lock() -> free() BUG#45505 Deadlock condition with MyISAM table in version 5.1.35 BUG#46769 Replication Broken when Max Packet Size Exceeded BUG#43797 "Flush logs " bring the error "1594" ,slave will not be sync! BUG#44976 Incorrect INSERT_ID in binary log BUG#47634 log-bin does not support explicit path anymore BUG#47721 Reboot master, slave doesn't drop tcp connection to master. Breaking r BUG#38715 slave crashed with concurrent kill/stop/start/reset BUG#25998 problems about circle replication BUG#42311 load data infile replication 4.1 to 6.0 fails BUG#46711 Huge binlog size BUG#46013 rpl_extraColmaster_myisam fails on pb2 BUG#46014 rpl_stm_reset_slave crashes the server sporadically in pb2 BUG#45242 crash on win in mysql_close() -> free() BUG#46030 rpl_truncate_3innodb causes server crash on windows BUG#45238 rpl_slave_skip, rpl_change_master failed (lost connection) for STOP SL BUG#46149 rpl_deadlock fails sporadically in pb2 BUG#40930 rpl.rpl_extraCol_falcon fails doing STOP SLAVE BUG#28976 Mixing trans and non-trans tables in one transaction results in incorr BUG#46861 Auto- closing of temporary tables broken by replicate- rewrite- db BUG#46864 Incorrect update of InnoDB table on slave when using trigger with myis BUG#46130 Slave does not correctly handle "expected errors" BUG#45694 Deadlock in replicated statement is not retried BUG#44331 Restore of database with events produces warning in replication BUG#44830 SLAVE START no longer results in error if RESTORE is running on master BUG#47566 rpl.rpl_semi_sync fails sporadically BUG#46209 binlog_tmp_table fails sporadically: missing rows in result BUG#40101 Result missmatch for rpl.rpl_events test BUG#46010 main.ctype_gbk_binlog fails sporadically : Table 't2' already exists BUG#38074 rpl_row_mysqlbinlog at line 235: could not sync with master BUG#45575 slave status reporting incorrect master_exec_pos BUG#44152 At the end of a large replication MySQL logs server_errorno=2013 BUG#46655 Replication works, but no updates on slave BUG#45150 LOST_EVENTS not documented BUG#46862 Auto- closing of temporary tables broken by replicate- rewrite- db BUG#46876 Mix of transactional and non-transactional tables causes failure in re BUG#43046 mixed mode switch to row format with temp table lead to wrong result BUG#41166 stored function requires "deterministic" if binlog_format is "statemen BUG#46129 Failing mixed stm (with trans and non- trans tables) causes wrong seq i BUG#45214 get_master_version_and_clock does not report error when queries fail BUG#44181 CHANGE MASTER complains Could not initialize master info BUG#23890 mysqlbinlog outputs COMMIT unnecessarily when single database is used BUG#38558 rpl_blob_innodb_row fails sporadically in pushbuild: Lost connection t BUG#43264 Test rpl_trigger is failing randomly w/ use of copy_file in 5.0 BUG#45630 rpl_trigger.test causes valgrind failures within nptl_pthread_exit_hac BUG#41496 rpl_multi_delete2 fails sporadically in pushbuild with timeout BUG#45774 Selecting the data, ordered by the field, containing the same value in BUG#46215 binlog of insert, update statements are displayed as a string can not BUG#42941 --database paramater to mysqlbinlog fails with RBR BUG#46187 mysqld crashed and the error log suggests that this might be a bug BUG#46191 InnoDB Crashed when exec query from reley- bin. BUG#33864 shutting down a slave while 'stop slave' is running causes a crash BUG#46424 Table creation is not replicated in some cases BUG#38994 Diagnostics_area::set_error_status Assertion `! is_set() || can_overwr BUG#44751 Trying to destroy unitialized mutex at sql_repl.cc, line 1040 on serve BUG#44115 purge_relay_logs doesn't return an error when count_relay_log_space fa BUG#45940 issues around rli- >last_event_start_time BUG#45670 Secondary auto- incremented primary fields on replicas end up with wron BUG#45824 Unsafe stmt in proc doesn't generate warning if binlog_format=STATEMEN BUG#45831 CREATE VIEW AS SELECT...LIMIT does not give warning for unsafe stmt BUG#45784 INSERT DELAYED in SP does not cause RBL if binlog_format=MIXED BUG#33238 mysqlbinlog cannot read binlog with >2000 LOAD DATA INFILE, and is slo BUG#44270 RESET SLAVE does not reset Last_IO_Error or Last_IO_Errno BUG#37768 rpl_flushlog_loop/row fails randomly BUG#40732 Binarylog is appended an odd numeric extension exceed a limit of signe BUG#44581 Slave stops when transaction with non-transactional table gets lock wa BUG#46108 crash if server fails at early startup BUG#34687 Error in bin-log after shutdown restart binlog was not closed properly BUG#43929 binlog corruption when max_binlog_cache_size is exceeded BUG#45820 Failures while syncing the relay- log.info are omitted BUG#45902 rpl_sp fails sporadically in check testcases BUG#45511 rpl.rpl_binlog_corruption fails with warning messages in Valgrind BUG#42199 rpl_ndb_mixed_tables test fails in 6.0-bugteam BUG#42749 infinite loop writing to row based binlog - processlist shows "freeing BUG#45014 log- slow- slave- statements does not work in in 5.1.34 BUG#45448 Query with datetime parameter taken from variable crashes replication BUG#40459 sporadic failure in rpl_ndb_denote_gap: lost connection during "stop s BUG#44442 Incident events are silent in mysqlbinlog output BUG#38097 Test 'rpl000002' fails in 'start/stop slave' on RHEL5 and IA64 (icc) BUG#37387 Relay log not sync:ed to disk BUG#45108 Slave skip counter not working as expected on debian platform BUG#45783 sorry, bad bug report BUG#40934 Semisynchronous replication: Change initial state after installation BUG#41948 Query_log_event constructor needlessly contorted BUG#42415 UPDATE with LIMIT clause unsafe for statement format even when ORDER B BUG#43263 BEGIN skipped in some replicate- do-db cases BUG#45675 Semisynchronous replication failure under non-concurrent workload and BUG#44799 rpl_backup_shutdown test fails on PB1 in pb-valgrind platform with tim BUG#42956 SBL, INSERT .. SELECT .. LIMIT error,STRICT_TRANS_TABLES mode, even My BUG#41725 slave crashes when inserting into temporary table after stop/start sla BUG#43647 Debug message "[Note] new_mode 0" floods slave error log BUG#24894 Prevent relay- log.info from getting out of sync with transactions on s BUG#45275 Replication: crash on garbage mutex LOCK_slave_start if failed mysqld BUG#42704 "Slave_IO_Running" differs in test result (2) BUG#41097 result files for rpl_extraColmaster_myisam, rpl_extraColmaster_innodb BUG#37714 rpl.rpl_heartbeat fails sporadically in pushbuild due to timeout BUG#43794 Slave SQL thread aborts with RBR on non- transactional tables BUG#44752 binary log corruption with RBR and trigger BUG#44627 Certain operations can freeze the server if binlog is enabled BUG#40045 Replication failure on RBR + no PK + UPDATE + integer key + char with BUG#40672 'Writing one row to the row- based binary log failed' and max_binlog_ca BUG#44777 chained replication problem with different mysql version BUG#44287 mysqlbinlog output garbage if incident- events have a unknown id BUG#44169 master slave replication fails when insert has a subselect BUG#44415 Server crashes when start slave is issued BUG#45136 log- slow- slave- statements doesn't work in 5.1.34 BUG#0319 if while a non- transactional slave is replicating a transaction, possi BUG#38205 Row- based Replication (RBR) causes inconsistencies: HA_ERR_FOUND_DUPP_ BUG#44179 reset slave crashes in my_error when reset_logs returns non-zero BUG#38716 slave crashed after 'stop slave' during concurrent stop/start/reset sl BUG#44312 deadlock between IO thread and SLAVE START BUG#34654 RESET SLAVE and START SLAVE does not clear Last_IO_Errno BUG#38694 Race condition in replication thread shutdown BUG#41902 MYSQL_BIN_LOG::reset_logs() doesn't call my_error() in face of an erro BUG#35515 Aliases of variables in binary log are ignored with NAME_CONST BUG#44978 Valgrind failure: Source and destination overlap in strcpy BUG#44981 Vagrind warning when CHANGE MASTER executed BUG#41400 slave fails to reconnect on errors BUG#13684 SP: DROP PROCEDURE|FUNCTION IF EXISTS not binlogged if routine does no BUG#43808 binlog error: sanity check failed BUG#38197 Errors in @@init_slave not visible in 'show slave status' BUG#39393 slave- skip-errors does not work when using ROW based replication BUG#44378 rpl_binlog_corruption fails with warning messages in Valgrind BUG#43949 Initialization of slave produces a warning message in Valgrind BUG#38070 rpl_locktrans_innodb Lock wait timeout exceeded At line 632 BUG#37716 rpl.rpl_deadlock_innodb 'row' failed on pushbuild BUG#38077 rpl_incident At line 22: query 'SELECT * ...' Table 'test.t1' doesn' BUG#42686 Sporadic failure of rpl_server_id1 test, inside show_rpl_debug_info.in BUG#44389 rpl_row_mysqlbinlog fails on windows due to operating system specifc c BUG#44390 rpl_innodb_mixed_ddl fails on windows due to operating system specifc BUG#43509 Assertion failed: ! is_set() when replaying binlog file with row based BUG#42977 RBR logs for rows with more than 250 column results in corrupt binlog. BUG#38849 Crash on mismatched create table (NOT NULL) BUG#38262 Replication failure when comparing integer column to string literal BUG#39701 Mixed binlog format does not switch to row mode on LOAD_FILE BUG#43667 Maria replication failure in row- based/mixed- mode replication BUG#43783 different master/slave table defs cause crash: bigint unsigned null vs BUG#38850 wrong data on NULL definition doesn't match BUG#40251 Replication failure on RBR + Innodb + PARTITIONs BUG#42951 Slave connections hang on "freeing items" BUG#44129 MySQL don't write query in binlog BUG#43908 Create VIEW Statement Is Written Incorrectly To Binlog And Breaks Repl BUG#22504 load data infile sql statement in replication architechure get error BUG#41719 delayed INSERT into timestamp col needs set time_zone for concurrent b BUG#31374 Trying to lock mutex at slave.cc, line 685, when the mutex was already BUG#39544 rpl.rpl_charset sporadically crashes the server in ps_stm / stmt mode BUG#42217 mysql.procs_priv does not get replicated BUG#42861 Assigning invalid directories to --slave- load- tmpdir crashes the slave BUG#22443 Connect problems in replication (rare only) BUG#43076 rpl.rpl_idempotency fails sporadically on pushbuild 397 replication bugs closed since last user conference!
Really... something...?
Yes... it is more robust than ever before
- 397 replication bugs closed since last user conference
- 77 with attached customer support issues
- 75-80% of our development time is spent on bug fixing
- Aiming for the highest quality of the core code base
- For the benefit of community and customers
- 143 open non-feature replication bugs
- 24 with attached customer support issues
Fixed
Related Conference Sessions and References
- Dr. Lars Thalmann
Development Manager, Replication & BackupTechnology
lars@mysql.com
- Dr. Mats Kindahl
Lead Developer, Replication Technology
mats@mysql.com
- Mon 8:30am-12am
Replication Tutorial
- Tue 2pm-3pm
New Replication Features
- Wed 10:50-11:50am
Mysteries of the Binary Log
- Thu 2:00-2:45pm
Intro to using MySQL in Clouds
- Thu 2:50-3:35pm
Replication Tricks & Tips
- Website: dev.mysql.com/replication
The presentation is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any
- contract. It is not a commitment to deliver any