summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.h
Commit message (Collapse)AuthorAgeFilesLines
...
| | | | | | * | | Bug #48463 backporting from 6.0-rpl to celosia a set of bugsAndrei Elkin2009-11-201-2/+8
| | | | | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mentioned on the bug report set of bugs fixes have not be pushed to the main trees. Fixed with extracting commits done to 6.0-rpl tree and applying them to the main 5.1. Notes. 1. part of changes - the mtr's specific - were packported to the main 5.0 tree for mtr v1 as http://lists.mysql.com/commits/46562 However, there is no that fix anymore in the mtr v2. (This fact was mailed to mtr maintaining people). 2. Bug@36929 crash in kill_zombie_dump_threads-> THD::awake() with replication tests is not backported because the base code of the patch is libevent and that was removed from the main trees due to its instability.
| | | | | * | | Initial import of WL#3726 "DDL locking for all metadata objects".Konstantin Osipov2009-11-301-0/+1
| | | | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport of: ------------------------------------------------------------ revno: 2630.4.1 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w timestamp: Fri 2008-05-23 17:54:03 +0400 message: WL#3726 "DDL locking for all metadata objects". After review fixes in progress. ------------------------------------------------------------ This is the first patch in series. It transforms the metadata locking subsystem to use a dedicated module (mdl.h,cc). No significant changes in the locking protocol. The import passes the test suite with the exception of deprecated/removed 6.0 features, and MERGE tables. The latter are subject to a fix by WL#4144. Unfortunately, the original changeset comments got lost in a merge, thus this import has its own (largely insufficient) comments. This patch fixes Bug#25144 "replication / binlog with view breaks". Warning: this patch introduces an incompatible change: Under LOCK TABLES, it's no longer possible to FLUSH a table that was not locked for WRITE. Under LOCK TABLES, it's no longer possible to DROP a table or VIEW that was not locked for WRITE. ****** Backport of: ------------------------------------------------------------ revno: 2630.4.2 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w timestamp: Sat 2008-05-24 14:03:45 +0400 message: WL#3726 "DDL locking for all metadata objects". After review fixes in progress. ****** Backport of: ------------------------------------------------------------ revno: 2630.4.3 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w timestamp: Sat 2008-05-24 14:08:51 +0400 message: WL#3726 "DDL locking for all metadata objects" Fixed failing Windows builds by adding mdl.cc to the lists of files needed to build server/libmysqld on Windows. ****** Backport of: ------------------------------------------------------------ revno: 2630.4.4 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w timestamp: Sat 2008-05-24 21:57:58 +0400 message: WL#3726 "DDL locking for all metadata objects". Fix for assert failures in kill.test which occured when one tried to kill ALTER TABLE statement on merge table while it was waiting in wait_while_table_is_used() for other connections to close this table. These assert failures stemmed from the fact that cleanup code in this case assumed that temporary table representing new version of table was open with adding to THD::temporary_tables list while code which were opening this temporary table wasn't always fulfilling this. This patch changes code that opens new version of table to always do this linking in. It also streamlines cleanup process for cases when error occurs while we have new version of table open. ****** WL#3726 "DDL locking for all metadata objects" Add libmysqld/mdl.cc to .bzrignore. ****** Backport of: ------------------------------------------------------------ revno: 2630.4.6 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w timestamp: Sun 2008-05-25 00:33:22 +0400 message: WL#3726 "DDL locking for all metadata objects". Addition to the fix of assert failures in kill.test caused by changes for this worklog. Make sure we close the new table only once.
| | | | | * | backporting fixes of bug@45940 to 5.1-rpl+2 to cover failures ↵Andrei Elkin2009-10-091-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | rpl_heartbeat_* as well.
| | | | | * | BUG#40337 Fsyncing master and relay log to disk after every event is too slowAlfranio Correia2009-09-291-1/+14
| | | | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NOTE: Backporting the patch to next-mr. The fix proposed in BUG#35542 and BUG#31665 introduces a performance issue when fsyncing the master.info, relay.info and relay-log.bin* after #th events. Although such solution has been proposed to reduce the probability of corrupted files due to a slave-crash, the performance penalty introduced by it has made the approach impractical for highly intensive workloads. In a nutshell, the option --syn-relay-log proposed in BUG#35542 and BUG#31665 simultaneously fsyncs master.info, relay-log.info and relay-log.bin* and this is the main source of performance issues. This patch introduces new options that give more control to the user on what should be fsynced and how often: 1) (--sync-master-info, integer) which syncs the master.info after #th event; 2) (--sync-relay-log, integer) which syncs the relay-log.bin* after #th events. 3) (--sync-relay-log-info, integer) which syncs the relay.info after #th transactions. To provide both performance and increased reliability, we recommend the following setup: 1) --sync-master-info = 0 eventually the operating system will fsync it; 2) --sync-relay-log = 0 eventually the operating system will fsync it; 3) --sync-relay-log-info = 1 fsyncs it after every transaction; Notice, that the previous setup does not reduce the probability of corrupted master.info and relay-log.bin*. To overcome the issue, this patch also introduces a recovery mechanism that right after restart throws away relay-log.bin* retrieved from a master and updates the master.info based on the relay.info: 4) (--relay-log-recovery, boolean) which enables a recovery mechanism that throws away relay-log.bin* after a crash. However, it can only recover the incorrect binlog file and position in master.info, if other informations (host, port password, etc) are corrupted or incorrect, then this recovery mechanism will fail to work.
| | | | | * BUG#38174 secure-file-priv breaks LOAD DATA INFILE replication in statement modeAlfranio Correia2009-02-211-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If secure-file-priv was set on slave, it became unable to execute LOAD DATA INFILE statements sent from master using mixed or statement-based replication. This patch fixes the issue by ignoring this security restriction and checking if the files are created and read by the slave in the --slave-load-tmpdir while executing the SQL Thread.
| | | | | * BUG#13861 - START SLAVE UNTIL may stop 1 evnt too late ifsvoj@mysql.com/june.mysql.com2008-02-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | log-slave-updates and circul repl After merge fixes.
| | | | | * Patch to eliminate some valgrind warnings in debug printout code.anozdrin/alik@quad.2008-02-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | (originally from Mats)
| | | | | * BUG#28618 (Skipping into the middle of a group with SQL_SLAVE_SKIP_COUNTERmats@kindahl-laptop.dnsalias.net2007-10-191-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is possible): When skipping the beginning of a transaction starting with BEGIN, the OPTION_BEGIN flag was not set correctly, which caused the slave to not recognize that it was inside a group. This patch sets the OPTION_BEGIN flag for BEGIN, COMMIT, ROLLBACK, and XID events. It also adds checks if inside a group before decreasing the slave skip counter to zero. Begin_query_log_event was not marked that it could not end a group, which is now corrected.
| | | | | * Minor fix to let the build proceed.mats@kindahl-laptop.dnsalias.net2007-08-171-1/+1
| | | | | |
| | | | | * Minor code fixes to help Doxygen generate good documentation.mats@kindahl-laptop.dnsalias.net2007-08-161-1/+1
| | | | | |
| | | | | * Renaming MASTER_INFO to Master_info in order to follow the codingmats@kindahl-laptop.dnsalias.net2007-08-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | standards (and help Doxygen generating good documentation).
| | | | | * Renaming RELAY_LOG_INFO and st_relay_log_info to follow coding standardsmats@kindahl-laptop.dnsalias.net2007-08-161-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | (and be more friendly to Doxygen by removing unnecessary typedefs).
| | | | | * WL#3228 (NDB) : RBR using different table defs on slave/mastercbell/Chuck@mysql_cab_desk.2007-07-291-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the ability to store extra field metadata in the table map event. This data can include pack_length() or field_lenght() for fields such as CHAR or VARCHAR enabling developers to add code that can check for compatibilty between master and slave columns. More importantly, the extra field metadata can be used to store data from the master correctly should a VARCHAR field on the master be <= 255 bytes while the same field on the slave is > 255 bytes. The patch also includes the needed changes to unpack to ensure that data which is smaller on the master can be unpacked correctly on the slave. WL#3915 : (NDB) master's cols > slave Slave starts accepting and handling rows of master's tables which have more columns. The most important part of implementation is how to caclulate the amount of bytes to skip for unknown by slave column.
| | | | | * BUG#24954 (Last_errno and Last_error not set after master_retry_count hasmats@kindahl-laptop.dnsalias.net2007-06-111-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | been reached): Post-merge patch to handle all the changes to the tree since the tree was cloned.
| | | | | * Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-rplmats@kindahl-laptop.dnsalias.net2007-06-091-4/+2
| | | | | |\ | | | | | | | | | | | | | | | | | | | | | into kindahl-laptop.dnsalias.net:/home/bk/b24954-mysql-5.1-new-rpl
| | | | | | * BUG#24954 (Last_errno and Last_error not set after master_retry_count was ↵mats@kindahl-laptop.dnsalias.net2007-06-091-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | reached): Adding new fields Last_{IO,SQL}_Errno and Last_{IO,SQL}_Error to output of SHOW SLAVE STATUS to hold errors from I/O and SQL thread respectively. Old fields Last_Error and Last_Errno are aliases for Last_SQL_Error and Last_SQL_Errno respectively. Fields are added last to output of SHOW SLAVE STATUS to allow old applications to use the same positional arguments into the row, while allowing new application to benefit from the added information. In addition, some new error codes are added (especially for the I/O thread) to be able to provide sensible error message.
| | | | | * | Fixes to make it compile when using Sun CC and restoring some changesmats@capulet.net2007-04-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | done in previous patches. There is an error in the Sun CC compiler that treats parameters that differ in only qualifier as different, even though this is not allowed by the standard (ISO/IEC 14882:2003, Section 13.1).
| | | | | * | Fixing portability issues regarding use of time_t.mats@romeo.(none)2007-04-131-2/+2
| | | | | | |
| | | | | * | BUG#25688 (RBR: circular replication may cause STMT_END_F flags to bemats@romeo.(none)2007-04-121-0/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | skipped): By moving statement end actions from Rows_log_event::do_apply_event() to Rows_log_event::do_update_pos() they will always be executed, even if Rows_log_event::do_apply_event() is skipped because the event originated at the same server. This because Rows_log_event::do_update_pos() is always executed (unless Rows_log_event::do_apply_event() failed with an error, in which case the slave stops with an error anyway). Adding test case. Fixing logic to detect if inside a group. If a rotate event occured when an initial prefix of events for a statement, but for which the table did contain a key, last_event_start_time is set to zero, causing rotate to end the group but without unlocking any tables. This left a lock hanging around, which subsequently triggered an assertion when a second attempt was made to lock the same sequence of tables. In order to solve the above problem, a new flag was added to the relay log info structure that is used to indicate that the replication thread is currently executing a statement. Using this flag, the replication thread is in a group if it is either in a statement or inside a trans- action. The patch also eliminates some gratuitous header file inclusions that were not needed (and caused compile errors) and replaced them with forward definitions.
| | | | | * | Merge romeo.(none):/home/bkroot/mysql-5.1-new-rplmats@romeo.(none)2007-03-221-4/+18
| | | | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | into romeo.(none):/home/bk/b23171-mysql-5.1-new-rpl
| | | | | | * | BUG#23171: Illegal group log positionmats@romeo.(none)2007-03-221-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tail fixes after re-applying patches to older version of clone.
| | | | | | * | BUG#23171 (Illegal slave restart position):mats@romeo.(none)2007-01-171-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Third patch of the bug fix where the code for skipping events and for executing events is factored out into three functions: - shall_skip() to decide if the event shall be skipped and the reason for it; - do_apply_event(), where the event is applied to the database; and - do_update_pos(), which updates the actual relay log position and group positions.
| | | | | | * | BUG#23171 (Illegal slave restart group position):mats@romeo.(none)2006-11-101-3/+1
| | | | | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Second patch to fix skipping code. Moving relay and binary log position changing code from do_apply_event [old exec_event()] into do_update_pos() and doing other changes necessary to support that. Fixing a bug that can cause deadlock if rotating binary log when committing a changes to a transactional table that is not inside a transaction and cause a rotate log.
| | | | | * | BUG#26634 (Valgrind failure in tree: memory loss for memory allocated in ↵mats@romeo.(none)2007-02-261-11/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rpl_utility.h): Adding code to release allocated memory when tables_to_lock list is cleared.
| | | | | * | Many files:kent@mysql.com/kent-amd64.(none)2006-12-271-2/+1
| | | | | |/ | | | | | | | | | | | | | | | | | | Changed header to GPL version 2 only
| | | | | * Merge romeo.(none):/home/bkroot/mysql-5.1-new-rplmats@romeo.(none)2006-11-031-16/+0
| | | | | |\ | | | | | | | | | | | | | | | | | | | | | into romeo.(none):/home/bk/b18581-mysql-5.1-new-rpl
| | | | | | * BUG#18581 (Creation of system tables recorded in binlog causing slave failure):mats@romeo.(none)2006-11-011-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not replicating the mysql database *at all* any more. All changes to mysql tables are replicated by replicating the statements that do the changes.
| | | | | * | Refactoring: Moved master info functionality into rpl_mi.cc to lars@mysql.com/black.(none)2006-10-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | make code easier to maintain.
| | | | | * | Refactoring: Moved rli code to new file rpl_rli.cc. The idea being that rli lars@mysql.com/black.(none)2006-10-311-0/+9
| | | | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | should be a separate module (i.e. a class) to make it easier to maintain the code, e.g. by having checks within the rli checking sanity of data and making member variables private. This will also ease implementation of multi-source and, at least in my fantasies :), make it possible in some future to have separate replication servers.
| | | | | * Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.1-runtimepetr@mysql.com2006-06-071-1/+1
| | | | | |\ | | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/cps/mysql/devel/5.1-logs-final
| | | | | | * WL#3153 "Split logs". Recommit with post-review fixespetr@mysql.com2006-05-051-1/+1
| | | | | | |
| | | | | * | Plugging memory leak in row-based replication triggered bymats@mysql.com2006-05-091-6/+5
| | | | | |/ | | | | | | | | | | | | | | | | | | test rpl_err_ignoredtables.
| | | | | * WL#3023 (Use locks in a statement-like manner):mats@mysql.com2006-02-161-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Table maps are now written on aquiring locks to tables and released at the end of each logical statement.
| | | | | * WL#1012: All changes as one single changeset.lars@mysql.com2005-12-221-0/+312
| | | | | | | | | | | | | | | | | | | | This includes both code and test cases.
* | | | | Use microsecond_interval_timer() instead of my_time() in replicaitonMonty2017-08-241-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use microsecond_interval_timer() to calculate time for applying row events. (Faster execution) - Removed return value for set_row_stmt_start_timestamp() as it was never used.
* | | | | MDEV-12179: Per-engine mysql.gtid_slave_pos tableKristian Nielsen2017-07-031-0/+1
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | Merge into MariaDB 10.3.
| * | | | MDEV-12179: Per-engine mysql.gtid_slave_pos tableKristian Nielsen2017-04-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Intermediate commit. Keep track of which mysql.gtid_slave_posXXX tables are available for each engine, by searching for all tables in the mysql schema with names that start with "gtid_slave_pos". The list is computed at server start when the GTID position is loaded, and it is re-computed on every START SLAVE command. This way, the DBA can manually add a table for a new engine, and it will be automatically picked up on next START SLAVE, so a full server restart is not needed. The list is not yet actually used in the code.
* | | | | ASAN error in rpl.mysql-wsrep#110-2Sergei Golubchik2017-04-071-1/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Annotate_rows_log_event again. When a new annotate event comes, the server applies it first (which backs up thd->query_string), then frees the old annotate event, if any. Normally there isn't. But with sub-statements (e.g. triggers) new annotate event comes before the first one is freed, so the second event backs up thd->query_string that was set by the first annotate event. Then the first event is freed, together with its query string. And then the second event restores thd->query_string to this freed memory. Fix: free old annotate event before applying the new one.
* | | | Merge branch '10.1' into 10.2Sergei Golubchik2017-03-301-1/+1
|\ \ \ \ | |/ / /
| * | | Merge 10.0 into 10.1Marko Mäkelä2017-03-031-1/+1
| |\ \ \ | | |/ /
| | * | Added error checking for all calls to flush_relay_log_info() and stmt_done()Monty2017-02-281-1/+1
| | | |
* | | | Fix several compile warnings on WindowsVladislav Vaintroub2017-03-101-1/+1
| | | |
* | | | MDEV-7145: Delayed replicationKristian Nielsen2016-10-161-18/+94
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge feature into 10.2 from feature branch. Delayed replication adds an option CHANGE MASTER TO master_delay=<seconds> Replication will then delay applying events with that many seconds. This creates a replication slave that reflects the state of the master some time in the past. Feature is ported from MySQL source tree. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
| * | | | MDEV-7145: Delayed replication, cleanup some codeKristian Nielsen2016-10-141-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original MySQL patch left some refactoring todo's, possibly because of known conflicts with other parallel development (like info-repository feature perhaps). This patch fixes those todos/refactorings. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
| * | | | MDEV-7145: Delayed replication, intermediate commit.Kristian Nielsen2016-10-141-14/+101
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial merge of delayed replication from MySQL git. The code from the initial push into MySQL is merged, and the associated test case passes. A number of tasks are still pending: 1. Check full test suite run for any regressions or .result file updates. 2. Extend the feature to also work for parallel replication. 3. There are some todo-comments about future refactoring left from MySQL, these should be located and merged on top. 4. There are some later related MySQL commits, these should be checked and merged. These include: e134b9362ba0b750d6ac1b444780019622d14aa5 b38f0f7857c073edfcc0a64675b7f7ede04be00f fd2b210383358fe7697f201e19ac9779879ba72a afc397376ec50e96b2918ee64e48baf4dda0d37d 5. The testcase from MySQL relies heavily on sleep and timing for testing, and seems likely to sporadically fail on heavily loaded test servers in buildbot or distro build farms. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
* | | | Merge parallel replication async deadlock kill into 10.2.Kristian Nielsen2016-09-091-1/+6
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | Conflicts: sql/mysqld.cc sql/slave.cc
| * | | Parallel replication async deadlock killKristian Nielsen2016-09-081-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a deadlock kill is detected inside the storage engine, the kill is not done immediately, to avoid calling back into the storage engine kill_query method with various lock subsystem mutexes held. Instead the kill is queued and done later by a slave background thread. This patch in preparation for fixing TokuDB optimistic parallel replication, as well as for removing locking hacks in InnoDB/XtraDB in 10.2. Signed-off-by: Kristian Nielsen <knielsen at knielsen-hq.org>
* | | | MDEV-5535: Cannot reopen temporary tableNirbhay Choubey2016-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysqld maintains a list of TABLE objects for all temporary tables created within a session in THD. Here each table is represented by a TABLE object. A query referencing a particular temporary table for more than once, however, failed with ER_CANT_REOPEN_TABLE error because a TABLE_SHARE was allocate together with the TABLE, so temporary tables always had only one TABLE per TABLE_SHARE. This patch lift this restriction by separating TABLE and TABLE_SHARE objects and storing TABLE_SHAREs for temporary tables in a list in THD, and TABLEs in a list within their respective TABLE_SHAREs.
* | | | CleanupsMonty2016-04-281-4/+5
|/ / / | | | | | | | | | | | | | | | | | | | | | - Avoid some realloc() during startup - Ensure that file_key_management_plugin frees it's memory early, even if it's linked statically. - Fixed compiler warnings from unused variables and missing destructors - Fixed wrong indentation
* | | Merge branch '10.0' into 10.1Sergei Golubchik2015-12-211-2/+2
|\ \ \ | |/ /