diff options
author | Michael Widenius <monty@askmonty.org> | 2012-10-01 02:30:44 +0300 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2012-10-01 02:30:44 +0300 |
commit | 8ac1b41cf358029b8e08e977f45bb6197a1c1c19 (patch) | |
tree | 2e77415664e1f259259f393da8b22effa1493a07 /mysql-test/suite/multi_source | |
parent | 5a4b5869a039bd50ce5a040114ede77bbae58c80 (diff) | |
download | mariadb-git-8ac1b41cf358029b8e08e977f45bb6197a1c1c19.tar.gz |
Made max_relay_log_size depending on master connection.
Changed names of multi-source log files so that original suffixes are kept.
include/my_sys.h:
Added fn_ext2(), which returns pointer to last '.' in file name
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
Updated test
mysql-test/suite/multi_source/info_logs-master.opt:
Test with strange file names
mysql-test/suite/multi_source/info_logs.result:
Updated results
mysql-test/suite/multi_source/info_logs.test:
Changed to test with complex names to be able to verify the filename generator code
mysql-test/suite/multi_source/relaylog_events.result:
Updated results
mysql-test/suite/multi_source/reset_slave.result:
Updated results
mysql-test/suite/multi_source/skip_counter.result:
Updated results
mysql-test/suite/multi_source/skip_counter.test:
Added testing of max_relay_log_size
mysql-test/suite/rpl/r/rpl_row_max_relay_size.result:
Updated results
mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result:
Updated results
mysql-test/suite/sys_vars/r/max_relay_log_size_basic.result:
Updated results
mysql-test/suite/sys_vars/t/max_relay_log_size_basic.test:
Updated results
mysys/mf_fn_ext.c:
Added fn_ext2(), which returns pointer to last '.' in file name
sql/log.cc:
Removed some wrong casts
sql/log.h:
Updated comment to reflect new code
sql/log_event.cc:
Updated DBUG_PRINT
sql/mysqld.cc:
Added that max_relay_log_size copies it's values from max_binlog_size
sql/mysqld.h:
Removed max_relay_log_size
sql/rpl_mi.cc:
Changed names of multi-source log files so that original suffixes are kept.
sql/rpl_mi.h:
Updated prototype
sql/rpl_rli.cc:
Updated comment to reflect new code
Made max_relay_log_size depending on master connection.
sql/rpl_rli.h:
Made max_relay_log_size depending on master connection.
sql/set_var.h:
Made option global so that one can check and change min & max values (sorry Sergei)
sql/sql_class.h:
Made max_relay_log_size depending on master connection.
sql/sql_repl.cc:
Updated calls to create_signed_file_name()
sql/sys_vars.cc:
Made max_relay_log_size depending on master connection.
Made old code more reusable
sql/sys_vars.h:
Changed Sys_var_multi_source_uint to ulong to be able to handle max_relay_log_size
Made old code more reusable
Diffstat (limited to 'mysql-test/suite/multi_source')
-rw-r--r-- | mysql-test/suite/multi_source/info_logs-master.opt | 1 | ||||
-rw-r--r-- | mysql-test/suite/multi_source/info_logs.result | 60 | ||||
-rw-r--r-- | mysql-test/suite/multi_source/info_logs.test | 16 | ||||
-rw-r--r-- | mysql-test/suite/multi_source/relaylog_events.result | 1 | ||||
-rw-r--r-- | mysql-test/suite/multi_source/reset_slave.result | 2 | ||||
-rw-r--r-- | mysql-test/suite/multi_source/skip_counter.result | 45 | ||||
-rw-r--r-- | mysql-test/suite/multi_source/skip_counter.test | 29 |
7 files changed, 113 insertions, 41 deletions
diff --git a/mysql-test/suite/multi_source/info_logs-master.opt b/mysql-test/suite/multi_source/info_logs-master.opt new file mode 100644 index 00000000000..da4e6d3c455 --- /dev/null +++ b/mysql-test/suite/multi_source/info_logs-master.opt @@ -0,0 +1 @@ +--relay-log=relay.bin --relay-log-info=relay.bin.info diff --git a/mysql-test/suite/multi_source/info_logs.result b/mysql-test/suite/multi_source/info_logs.result index 4947244068a..1da44992ec6 100644 --- a/mysql-test/suite/multi_source/info_logs.result +++ b/mysql-test/suite/multi_source/info_logs.result @@ -15,35 +15,35 @@ set default_master_connection = 'master1'; include/wait_for_slave_to_start.inc # # List of files matching '*info*' pattern while 'master1' is running -master.info.master1 +master-master1.info multi-master.info -relay-log.info.master1 +relay.bin-master1.info # End of list # # Contents of multi-master.info master1 # EOF # -change master 'master2' to +change master 'MASTER 2.2' to master_port=MYPORT_2, master_host='127.0.0.1', master_user='root'; -start slave 'master2'; -set default_master_connection = 'master2'; +start slave 'MASTER 2.2'; +set default_master_connection = 'MASTER 2.2'; include/wait_for_slave_to_start.inc # # List of files matching '*info*' pattern -# while 'master1' and 'master2' are running -master.info.master1 -master.info.master2 +# while 'master1' and 'MASTER 2.2' are running +master-master1.info +master-master@00202@002e2.info multi-master.info -relay-log.info.master1 -relay-log.info.master2 +relay.bin-master1.info +relay.bin-master@00202@002e2.info # End of list # # Contents of multi-master.info master1 -master2 +MASTER 2.2 # EOF # stop slave 'master1'; @@ -52,14 +52,14 @@ include/wait_for_slave_to_stop.inc reset slave 'master1' all; # # List of files matching '*info*' pattern -# after 'master1' was completely reset, 'master2' still running -master.info.master2 +# after 'master1' was completely reset, 'MASTER 2.2' still running +master-master@00202@002e2.info multi-master.info -relay-log.info.master2 +relay.bin-master@00202@002e2.info # End of list # # Contents of multi-master.info -master2 +MASTER 2.2 # EOF # set default_master_connection = ''; @@ -71,44 +71,44 @@ start slave; include/wait_for_slave_to_start.inc # # List of files matching '*info*' pattern -# while 'master2' and '' are running +# while 'MASTER 2.2' and '' are running +master-master@00202@002e2.info master.info -master.info.master2 multi-master.info -relay-log.info -relay-log.info.master2 +relay.bin-master@00202@002e2.info +relay.bin.info # End of list # # Contents of multi-master.info -master2 +MASTER 2.2 # EOF # show full slave status; Connection_name Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id - Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 286 mysqld-relay-bin.000002 572 master-bin.000001 Yes Yes 0 0 286 868 None 0 No 0 No 0 0 1 -master2 Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 286 mysqld-relay-bin-master2.000002 572 master-bin.000001 Yes Yes 0 0 286 876 None 0 No 0 No 0 0 2 + Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 286 relay.000002 572 master-bin.000001 Yes Yes 0 0 286 857 None 0 No 0 No 0 0 1 +MASTER 2.2 Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 286 relay-master@00202@002e2.000002 572 master-bin.000001 Yes Yes 0 0 286 876 None 0 No 0 No 0 0 2 show full slave status; Connection_name Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id - Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 286 mysqld-relay-bin.000004 532 master-bin.000001 Yes Yes 0 0 286 828 None 0 No 0 No 0 0 1 -master2 Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 286 mysqld-relay-bin-master2.000004 532 master-bin.000001 Yes Yes 0 0 286 836 None 0 No 0 No 0 0 2 + Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 286 relay.000004 532 master-bin.000001 Yes Yes 0 0 286 817 None 0 No 0 No 0 0 1 +MASTER 2.2 Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 286 relay-master@00202@002e2.000004 532 master-bin.000001 Yes Yes 0 0 286 836 None 0 No 0 No 0 0 2 # # List of files matching '*info*' pattern # after slave server restart -# while 'master2' and '' are running +# while 'MASTER 2.2' and '' are running +master-master@00202@002e2.info master.info -master.info.master2 multi-master.info -relay-log.info -relay-log.info.master2 +relay.bin-master@00202@002e2.info +relay.bin.info # End of list # # Contents of multi-master.info -master2 +MASTER 2.2 # EOF # stop slave; include/wait_for_slave_to_stop.inc -set default_master_connection = 'master2'; +set default_master_connection = 'MASTER 2.2'; stop slave; include/wait_for_slave_to_stop.inc reset slave all; diff --git a/mysql-test/suite/multi_source/info_logs.test b/mysql-test/suite/multi_source/info_logs.test index 40e1b481d2c..f06880faca6 100644 --- a/mysql-test/suite/multi_source/info_logs.test +++ b/mysql-test/suite/multi_source/info_logs.test @@ -47,20 +47,20 @@ set default_master_connection = 'master1'; # Start replication from the second master --replace_result $SERVER_MYPORT_2 MYPORT_2 -eval change master 'master2' to +eval change master 'MASTER 2.2' to master_port=$SERVER_MYPORT_2, master_host='127.0.0.1', master_user='root'; -start slave 'master2'; -set default_master_connection = 'master2'; +start slave 'MASTER 2.2'; +set default_master_connection = 'MASTER 2.2'; --source include/wait_for_slave_to_start.inc # Check the files --echo # --echo # List of files matching '*info*' pattern ---echo # while 'master1' and 'master2' are running +--echo # while 'master1' and 'MASTER 2.2' are running --list_files $datadir *info* --echo # End of list --echo # @@ -80,7 +80,7 @@ reset slave 'master1' all; --echo # --echo # List of files matching '*info*' pattern ---echo # after 'master1' was completely reset, 'master2' still running +--echo # after 'master1' was completely reset, 'MASTER 2.2' still running --list_files $datadir *info* --echo # End of list --echo # @@ -106,7 +106,7 @@ start slave; --echo # --echo # List of files matching '*info*' pattern ---echo # while 'master2' and '' are running +--echo # while 'MASTER 2.2' and '' are running --list_files $datadir *info* --echo # End of list --echo # @@ -136,7 +136,7 @@ show full slave status; --echo # --echo # List of files matching '*info*' pattern --echo # after slave server restart ---echo # while 'master2' and '' are running +--echo # while 'MASTER 2.2' and '' are running --list_files $datadir *info* --echo # End of list --echo # @@ -151,7 +151,7 @@ show full slave status; stop slave; --source include/wait_for_slave_to_stop.inc -set default_master_connection = 'master2'; +set default_master_connection = 'MASTER 2.2'; stop slave; --source include/wait_for_slave_to_stop.inc reset slave all; diff --git a/mysql-test/suite/multi_source/relaylog_events.result b/mysql-test/suite/multi_source/relaylog_events.result index a91ae82970b..437dc87788a 100644 --- a/mysql-test/suite/multi_source/relaylog_events.result +++ b/mysql-test/suite/multi_source/relaylog_events.result @@ -9,6 +9,7 @@ drop table if exists t1; create table t1 (i int) engine=MyISAM; mysqld-relay-bin-master1.000001 mysqld-relay-bin-master1.000002 +mysqld-relay-bin-master1.index show relaylog events in 'mysqld-relay-bin-master1.000002'; Log_name Pos Event_type Server_id End_log_pos Info mysqld-relay-bin-master1.000002 4 Format_desc 3 246 Server version diff --git a/mysql-test/suite/multi_source/reset_slave.result b/mysql-test/suite/multi_source/reset_slave.result index a1256988bbf..ab59f54315a 100644 --- a/mysql-test/suite/multi_source/reset_slave.result +++ b/mysql-test/suite/multi_source/reset_slave.result @@ -14,7 +14,7 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File 127.0.0.1 root MYPORT_1 60 master-bin.000001 729 mysqld-relay-bin-master1.000002 1015 master-bin.000001 No No 0 0 729 1319 None 0 No NULL No 0 0 1 mysqld-relay-bin-master1.000001 mysqld-relay-bin-master1.000002 -mysqld-relay-bin.index-master1 +mysqld-relay-bin-master1.index reset slave 'master1'; show slave 'master1' status; Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id diff --git a/mysql-test/suite/multi_source/skip_counter.result b/mysql-test/suite/multi_source/skip_counter.result index 1fb1c255d80..51ad36c4ee8 100644 --- a/mysql-test/suite/multi_source/skip_counter.result +++ b/mysql-test/suite/multi_source/skip_counter.result @@ -55,6 +55,49 @@ set default_master_connection = 'master2'; select @@session.sql_slave_skip_counter; @@session.sql_slave_skip_counter 3 +select @@global.max_relay_log_size; +@@global.max_relay_log_size +1073741824 +set global max_relay_log_size = 1*1024*1024; +select @@global.max_relay_log_size; +@@global.max_relay_log_size +1048576 +select @@session.max_relay_log_size; +@@session.max_relay_log_size +1048576 +set session max_relay_log_size = 3*1024*1024; +select @@global.max_relay_log_size; +@@global.max_relay_log_size +3145728 +select @@session.max_relay_log_size; +@@session.max_relay_log_size +3145728 +set global max_relay_log_size= default; +select @@global.max_relay_log_size; +@@global.max_relay_log_size +1073741824 +select @@session.max_relay_log_size; +@@session.max_relay_log_size +1073741824 +set global max_relay_log_size= 3*1024*1024; +set default_master_connection = 'master1'; +select @@session.max_relay_log_size; +@@session.max_relay_log_size +1073741824 +set default_master_connection = 'qqq'; +select @@session.max_relay_log_size; +@@session.max_relay_log_size +0 +Warnings: +Warning 1617 There is no master connection 'qqq' +set default_master_connection = 'master2'; +select @@session.max_relay_log_size; +@@session.max_relay_log_size +3145728 +set global max_binlog_size= 4*1024*1024; +select @@global.max_relay_log_size; +@@global.max_relay_log_size +3145728 start slave 'master2'; include/wait_for_slave_to_start.inc set default_master_connection = ''; @@ -72,6 +115,8 @@ set default_master_connection = 'master2'; stop slave; include/wait_for_slave_to_stop.inc set global sql_slave_skip_counter = 0; +set global max_relay_log_size = 1073741824; +set global max_binlog_size = 1073741824; disconnect slave; connection master1; drop database db; diff --git a/mysql-test/suite/multi_source/skip_counter.test b/mysql-test/suite/multi_source/skip_counter.test index fe5df69097a..ceb7eb93f0f 100644 --- a/mysql-test/suite/multi_source/skip_counter.test +++ b/mysql-test/suite/multi_source/skip_counter.test @@ -1,5 +1,5 @@ # -# Test of sql_slave_skip_counter +# Test of sql_slave_skip_counter and rpl_max_size # --enable_connect_log @@ -16,7 +16,6 @@ create database db; create table db.t1 (i int) engine=MyISAM; --save_master_pos - # Create the same schema and another table # on the 2nd master @@ -62,6 +61,8 @@ master_user='root'; # to modify the test later --let $skip_counter_saved = `select @@global.sql_slave_skip_counter` +--let $max_relay_log_size_saved= `select @@global.max_relay_log_size` +--let $max_binlog_size_saved= `select @@global.max_binlog_size` set global sql_slave_skip_counter = 2; select @@global.sql_slave_skip_counter; select @@session.sql_slave_skip_counter; @@ -79,6 +80,28 @@ select @@session.sql_slave_skip_counter; set default_master_connection = 'master2'; select @@session.sql_slave_skip_counter; +# Test of setting max_relay_log_size +select @@global.max_relay_log_size; +set global max_relay_log_size = 1*1024*1024; +select @@global.max_relay_log_size; +select @@session.max_relay_log_size; +set session max_relay_log_size = 3*1024*1024; +select @@global.max_relay_log_size; +select @@session.max_relay_log_size; +set global max_relay_log_size= default; +select @@global.max_relay_log_size; +select @@session.max_relay_log_size; +set global max_relay_log_size= 3*1024*1024; +set default_master_connection = 'master1'; +select @@session.max_relay_log_size; +set default_master_connection = 'qqq'; +select @@session.max_relay_log_size; +set default_master_connection = 'master2'; +select @@session.max_relay_log_size; +set global max_binlog_size= 4*1024*1024; +select @@global.max_relay_log_size; + + start slave 'master2'; --source include/wait_for_slave_to_start.inc set default_master_connection = ''; @@ -113,6 +136,8 @@ stop slave; --source include/wait_for_slave_to_stop.inc --eval set global sql_slave_skip_counter = $skip_counter_saved +--eval set global max_relay_log_size = $max_relay_log_size_saved +--eval set global max_binlog_size = $max_binlog_size_saved --enable_connect_log --disconnect slave |