Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 18.217.163.75
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
suite /
ndb_rpl /
t /
[ HOME SHELL ]
Name
Size
Permission
Action
disabled.def
919
B
-rw-r--r--
ndb_apply_status.frm
8.51
KB
-rw-r--r--
ndb_conflict_info.inc
3.79
KB
-rw-r--r--
ndb_conflict_info_epoch2.inc
3.2
KB
-rw-r--r--
ndb_conflict_info_epoch2_init....
1.33
KB
-rw-r--r--
ndb_conflict_info_init.inc
1.23
KB
-rw-r--r--
ndb_connect_to_primary.inc
160
B
-rw-r--r--
ndb_connect_to_secondary.inc
161
B
-rw-r--r--
ndb_dist_priv_check.inc
1.13
KB
-rw-r--r--
ndb_dist_priv_common.inc
6.89
KB
-rw-r--r--
ndb_dist_priv_default-master.o...
54
B
-rw-r--r--
ndb_dist_priv_default.test
975
B
-rw-r--r--
ndb_dist_priv_ndb-master.opt
54
B
-rw-r--r--
ndb_dist_priv_ndb.test
1.84
KB
-rw-r--r--
ndb_rpl_2innodb-master.opt
32
B
-rw-r--r--
ndb_rpl_2innodb-slave.opt
47
B
-rw-r--r--
ndb_rpl_2innodb.test
1.63
KB
-rw-r--r--
ndb_rpl_2multi_basic.inc
3.75
KB
-rw-r--r--
ndb_rpl_2multi_eng.inc
10.33
KB
-rw-r--r--
ndb_rpl_2myisam-master.opt
25
B
-rw-r--r--
ndb_rpl_2myisam-slave.opt
47
B
-rw-r--r--
ndb_rpl_2myisam.test
1.8
KB
-rw-r--r--
ndb_rpl_2ndb-slave.opt
58
B
-rw-r--r--
ndb_rpl_2ndb.test
858
B
-rw-r--r--
ndb_rpl_2other-slave.opt
45
B
-rw-r--r--
ndb_rpl_2other.test
2.18
KB
-rw-r--r--
ndb_rpl_add_column.test
3.81
KB
-rw-r--r--
ndb_rpl_apply_status-master.op...
28
B
-rw-r--r--
ndb_rpl_apply_status.test
1.5
KB
-rw-r--r--
ndb_rpl_auto_inc.test
4.18
KB
-rw-r--r--
ndb_rpl_bank.test
6.68
KB
-rw-r--r--
ndb_rpl_basic.test
11.65
KB
-rw-r--r--
ndb_rpl_batch.test
4.07
KB
-rw-r--r--
ndb_rpl_batch_handling.test
2.32
KB
-rw-r--r--
ndb_rpl_binlog_format_errors.t...
3.32
KB
-rw-r--r--
ndb_rpl_binlog_row_image_minim...
81
B
-rw-r--r--
ndb_rpl_binlog_row_image_minim...
293
B
-rw-r--r--
ndb_rpl_bitfield.test
8.11
KB
-rw-r--r--
ndb_rpl_blob.test
4.12
KB
-rw-r--r--
ndb_rpl_break_3_chain.cnf
1.59
KB
-rw-r--r--
ndb_rpl_break_3_chain.test
3.67
KB
-rw-r--r--
ndb_rpl_bug22045.test
2.4
KB
-rw-r--r--
ndb_rpl_bug_13440282.test
1.37
KB
-rw-r--r--
ndb_rpl_check_for_mixed.test
1014
B
-rw-r--r--
ndb_rpl_checksum.test
7.74
KB
-rw-r--r--
ndb_rpl_circular.test
4.42
KB
-rw-r--r--
ndb_rpl_circular_2ch.cnf
948
B
-rw-r--r--
ndb_rpl_circular_2ch.test
4.41
KB
-rw-r--r--
ndb_rpl_circular_2ch_rep_statu...
183
B
-rw-r--r--
ndb_rpl_circular_2ch_rep_statu...
11.9
KB
-rw-r--r--
ndb_rpl_circular_simplex.test
2.43
KB
-rw-r--r--
ndb_rpl_conflict_1.inc
5.15
KB
-rw-r--r--
ndb_rpl_conflict_basic.test
19.85
KB
-rw-r--r--
ndb_rpl_conflict_epoch.cnf
561
B
-rw-r--r--
ndb_rpl_conflict_epoch.inc
9.81
KB
-rw-r--r--
ndb_rpl_conflict_epoch.test
52
B
-rw-r--r--
ndb_rpl_conflict_epoch2.cnf
67
B
-rw-r--r--
ndb_rpl_conflict_epoch2.test
2.43
KB
-rw-r--r--
ndb_rpl_conflict_epoch2_extra....
37
B
-rw-r--r--
ndb_rpl_conflict_epoch2_extra....
31.45
KB
-rw-r--r--
ndb_rpl_conflict_epoch2_trans....
754
B
-rw-r--r--
ndb_rpl_conflict_epoch2_trans....
1.66
KB
-rw-r--r--
ndb_rpl_conflict_epoch_1.inc
18.75
KB
-rw-r--r--
ndb_rpl_conflict_epoch_ext.cnf
561
B
-rw-r--r--
ndb_rpl_conflict_epoch_ext.tes...
86
B
-rw-r--r--
ndb_rpl_conflict_epoch_extende...
868
B
-rw-r--r--
ndb_rpl_conflict_epoch_extende...
10.95
KB
-rw-r--r--
ndb_rpl_conflict_epoch_trans.c...
868
B
-rw-r--r--
ndb_rpl_conflict_epoch_trans.i...
27.77
KB
-rw-r--r--
ndb_rpl_conflict_epoch_trans.t...
58
B
-rw-r--r--
ndb_rpl_conflict_epoch_trans_e...
868
B
-rw-r--r--
ndb_rpl_conflict_epoch_trans_e...
92
B
-rw-r--r--
ndb_rpl_conflict_max-master.op...
28
B
-rw-r--r--
ndb_rpl_conflict_max.test
5.09
KB
-rw-r--r--
ndb_rpl_conflict_max_delete_wi...
28
B
-rw-r--r--
ndb_rpl_conflict_max_delete_wi...
4.92
KB
-rw-r--r--
ndb_rpl_conflict_old-master.op...
28
B
-rw-r--r--
ndb_rpl_conflict_old.test
5.11
KB
-rw-r--r--
ndb_rpl_conflict_read_tracking...
889
B
-rw-r--r--
ndb_rpl_conflict_read_tracking...
19.62
KB
-rw-r--r--
ndb_rpl_ctype_ucs2_def-master....
70
B
-rw-r--r--
ndb_rpl_ctype_ucs2_def.test
1.33
KB
-rw-r--r--
ndb_rpl_dd_advance.test
10.44
KB
-rw-r--r--
ndb_rpl_dd_basic.test
1.58
KB
-rw-r--r--
ndb_rpl_dd_partitions-master.o...
11
B
-rw-r--r--
ndb_rpl_dd_partitions-slave.op...
11
B
-rw-r--r--
ndb_rpl_dd_partitions.test
8.73
KB
-rw-r--r--
ndb_rpl_ddl_open_trans.test
360
B
-rw-r--r--
ndb_rpl_dist_priv.test
8.33
KB
-rw-r--r--
ndb_rpl_do_db-slave.opt
26
B
-rw-r--r--
ndb_rpl_do_db.test
1.73
KB
-rw-r--r--
ndb_rpl_do_table-slave.opt
29
B
-rw-r--r--
ndb_rpl_do_table.test
1.41
KB
-rw-r--r--
ndb_rpl_empty_epoch.test
1.12
KB
-rw-r--r--
ndb_rpl_gap_event-master.opt
24
B
-rw-r--r--
ndb_rpl_gap_event.test
2.26
KB
-rw-r--r--
ndb_rpl_get_binlog_events.inc
1.09
KB
-rw-r--r--
ndb_rpl_get_server_error_log.i...
553
B
-rw-r--r--
ndb_rpl_idempotent.test
5.72
KB
-rw-r--r--
ndb_rpl_ignore_db-master.opt
25
B
-rw-r--r--
ndb_rpl_ignore_db.test
1.27
KB
-rw-r--r--
ndb_rpl_init_rep_status.test
2.71
KB
-rw-r--r--
ndb_rpl_innodb2ndb-slave.opt
42
B
-rw-r--r--
ndb_rpl_innodb2ndb.test
714
B
-rw-r--r--
ndb_rpl_innodb_trans-slave.opt
25
B
-rw-r--r--
ndb_rpl_innodb_trans.test
1.54
KB
-rw-r--r--
ndb_rpl_last_conflict_epoch_va...
36
B
-rw-r--r--
ndb_rpl_last_conflict_epoch_va...
3.92
KB
-rw-r--r--
ndb_rpl_load.test
2.55
KB
-rw-r--r--
ndb_rpl_logging.test
3.96
KB
-rw-r--r--
ndb_rpl_mix_eng_trans.test
8.84
KB
-rw-r--r--
ndb_rpl_mix_innodb-master.opt
32
B
-rw-r--r--
ndb_rpl_mix_innodb.test
533
B
-rw-r--r--
ndb_rpl_mixed_tables-master.op...
13
B
-rw-r--r--
ndb_rpl_mixed_tables-slave.opt
61
B
-rw-r--r--
ndb_rpl_mixed_tables.test
8.35
KB
-rw-r--r--
ndb_rpl_multi.test
2.93
KB
-rw-r--r--
ndb_rpl_multi_binlog_update.cn...
1.83
KB
-rw-r--r--
ndb_rpl_multi_binlog_update.in...
6.78
KB
-rw-r--r--
ndb_rpl_multi_engine2.inc
2.56
KB
-rw-r--r--
ndb_rpl_multi_update2-slave.op...
42
B
-rw-r--r--
ndb_rpl_myisam2ndb-slave.opt
42
B
-rw-r--r--
ndb_rpl_myisam2ndb.test
890
B
-rw-r--r--
ndb_rpl_ndbapi-examples.test
996
B
-rw-r--r--
ndb_rpl_rep_error.test
14.2
KB
-rw-r--r--
ndb_rpl_rep_ignore-slave.opt
63
B
-rw-r--r--
ndb_rpl_rep_ignore.test
1.78
KB
-rw-r--r--
ndb_rpl_skip_gap_event-slave.o...
24
B
-rw-r--r--
ndb_rpl_skip_gap_event.test
2.39
KB
-rw-r--r--
ndb_rpl_slave_binlog_index.tes...
2.82
KB
-rw-r--r--
ndb_rpl_slave_conflict_role_va...
4.94
KB
-rw-r--r--
ndb_rpl_slave_lsu.cnf
57
B
-rw-r--r--
ndb_rpl_slave_lsu.test
5.87
KB
-rw-r--r--
ndb_rpl_slave_lsu_anyval.cnf
176
B
-rw-r--r--
ndb_rpl_slave_lsu_anyval.test
2.46
KB
-rw-r--r--
ndb_rpl_slave_replay.test
14.63
KB
-rw-r--r--
ndb_rpl_slave_restart.test
3.3
KB
-rw-r--r--
ndb_rpl_stm_innodb-master.opt
32
B
-rw-r--r--
ndb_rpl_stm_innodb.test
622
B
-rw-r--r--
ndb_rpl_sync.test
3.19
KB
-rw-r--r--
ndb_rpl_ui.test
2.29
KB
-rw-r--r--
ndb_rpl_ui2.test
957
B
-rw-r--r--
ndb_rpl_ui3.test
1.5
KB
-rw-r--r--
ndb_rpl_xxx_innodb.inc
6.25
KB
-rw-r--r--
ndb_slave_exec_info_init.inc
704
B
-rw-r--r--
ndb_sync_primary_to_secondary....
215
B
-rw-r--r--
ndb_sync_secondary_to_primary....
215
B
-rw-r--r--
ndb_trans_conflict_info.inc
1.71
KB
-rw-r--r--
ndb_trans_conflict_info_init.i...
1.5
KB
-rw-r--r--
ndb_trans_conflict_info_stable...
2.28
KB
-rw-r--r--
ndb_wait_for_zero_commit_ack_m...
569
B
-rw-r--r--
rpl_truncate_7ndb.test
1.78
KB
-rw-r--r--
rpl_truncate_7ndb_2.test
593
B
-rw-r--r--
select_ndb_apply_status.inc
505
B
-rw-r--r--
show_binlog_using_logname.inc
968
B
-rw-r--r--
show_mysqld_warnings.inc
780
B
-rw-r--r--
show_slave_max_replicated_epoc...
380
B
-rw-r--r--
wait_schema_logging.inc
2.33
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ndb_rpl_conflict_read_tracking.test
# # Test basic read tracking for engine native # conflict resolution for ndb # # --source include/have_ndb.inc --source include/have_binlog_format_mixed_or_row.inc --source suite/ndb_rpl/ndb_master-slave.inc --source suite/ndb_rpl/t/ndb_trans_conflict_info_init.inc --echo Setup circular replication --connection slave RESET MASTER; let $SLAVE_SERVER_ID= `select @@server_id`; echo SLAVE_SERVER_ID: $SLAVE_SERVER_ID; --connection master --replace_result $SLAVE_MYPORT SLAVE_PORT --eval CHANGE MASTER TO master_host="127.0.0.1",master_port=$SLAVE_MYPORT,master_user="root" START SLAVE; let $MASTER_SERVER_ID= `select @@server_id`; echo MASTER_SERVER_ID: $MASTER_SERVER_ID; --echo Setup ndb_replication and t1$EX exceptions table --disable_warnings --disable_query_log --connection master drop table if exists mysql.ndb_replication; CREATE TABLE mysql.ndb_replication (db VARBINARY(63), table_name VARBINARY(63), server_id INT UNSIGNED, binlog_type INT UNSIGNED, conflict_fn VARBINARY(128), PRIMARY KEY USING HASH (db,table_name,server_id)) ENGINE=NDB PARTITION BY KEY(db,table_name); create table test.t1$EX (NDB$SERVER_ID int unsigned, NDB$MASTER_SERVER_ID int unsigned, NDB$MASTER_EPOCH bigint unsigned, NDB$COUNT int unsigned, a int not null, b$old varchar(2000), b$new varchar(2000), NDB$OP_TYPE ENUM('WRITE_ROW','UPDATE_ROW','DELETE_ROW','REFRESH_ROW','READ_ROW') NOT NULL, NDB$CFT_CAUSE ENUM('ROW_DOES_NOT_EXIST','ROW_ALREADY_EXISTS','DATA_IN_CONFLICT','TRANS_IN_CONFLICT') NOT NULL, NDB$ORIG_TRANSID BIGINT UNSIGNED NOT NULL, primary key(NDB$SERVER_ID, NDB$MASTER_SERVER_ID, NDB$MASTER_EPOCH, NDB$COUNT)) ENGINE=NDB; create table test.t2$EX (NDB$SERVER_ID int unsigned, NDB$MASTER_SERVER_ID int unsigned, NDB$MASTER_EPOCH bigint unsigned, NDB$COUNT int unsigned, a int not null, b$old varchar(2000), b$new varchar(2000), NDB$OP_TYPE ENUM('WRITE_ROW','UPDATE_ROW','DELETE_ROW','REFRESH_ROW','READ_ROW') NOT NULL, NDB$CFT_CAUSE ENUM('ROW_DOES_NOT_EXIST','ROW_ALREADY_EXISTS','DATA_IN_CONFLICT','TRANS_IN_CONFLICT') NOT NULL, NDB$ORIG_TRANSID BIGINT UNSIGNED NOT NULL, primary key(NDB$SERVER_ID, NDB$MASTER_SERVER_ID, NDB$MASTER_EPOCH, NDB$COUNT)) ENGINE=NDB; --enable_warnings --enable_query_log --echo Populate ndb_replication table as necessary eval replace into mysql.ndb_replication values ("test", "t1", $SLAVE_SERVER_ID, 7, NULL), ("test", "t1", $MASTER_SERVER_ID, 7, "NDB\$EPOCH_TRANS()"), ("test", "t2", $SLAVE_SERVER_ID, 7, NULL), ("test", "t2", $MASTER_SERVER_ID, 7, "NDB\$EPOCH_TRANS()"); create table test.t1 ( a int primary key, b varchar(2000)) engine=ndb; create table test.t2 ( a int primary key, b varchar(2000)) engine=ndb; --sync_slave_with_master slave --connection master --echo Add some data insert into test.t1 values (1, "Initial data 1"), (2, "Initial data 2"), (3, "Initial data 3"), (4, "Initial data 4"), (5, "Initial data 5"), (6, "Initial data 6"), (7, "Initial data 7"), (8, "Initial data 8"), (9, "Initial data 9"), (10, "Initial data 10"); insert into test.t2 values (1, "Initial data 1"), (2, "Initial data 2"), (3, "Initial data 3"), (4, "Initial data 4"), (5, "Initial data 5"), (6, "Initial data 6"), (7, "Initial data 7"), (8, "Initial data 8"), (9, "Initial data 9"), (10, "Initial data 10"); --echo Sync all changes --echo --------------------------------------- --sync_slave_with_master slave --sync_slave_with_master master -- echo Test 1, read-update conflict without read tracking --connection slave --echo Stopping secondary slave stop slave; --connection master --echo Stopping primary slave stop slave; begin; update test.t1 set b="Primary first change 1" where a=1; update test.t1 set b="Primary first change 2" where a=2; commit; --connection slave SET ndb_log_exclusive_reads= 0; begin; select * from test.t1 where a = 1 for update; update test.t2 set b="Secondary first change 3" where a=3; commit; --echo Checking tables before conflict resolution --echo --------------------------------------- --connection master --echo **** Primary **** select * from test.t1 order by a; select * from test.t2 order by a; --echo Starting primary slave start slave; --connection slave --echo **** Secondary **** select * from test.t1 order by a; select * from test.t2 order by a; --sync_slave_with_master master --echo Primary should not have rejected change from Secondary select * from test.t1 order by a; select * from test.t2 order by a; --source suite/ndb_rpl/t/ndb_trans_conflict_info.inc --source suite/ndb_rpl/t/ndb_trans_conflict_info_init.inc select NDB$OP_TYPE, b$old, b$new, NDB$CFT_CAUSE from test.t1$EX order by a; select NDB$OP_TYPE, b$old, b$new, NDB$CFT_CAUSE from test.t2$EX order by a; --connection slave -- Echo starting secondary slave start slave; --connection master --sync_slave_with_master slave --connection slave --echo Secondary should not have been realigned to Primary --connection master --echo **** Primary **** select * from test.t1 order by a; select * from test.t2 order by a; --connection slave --echo **** Secondary **** select * from test.t1 order by a; select * from test.t2 order by a; --connection master update test.t1 set b="Initial data 1" where a=1; update test.t1 set b="Initial data 2" where a=2; update test.t2 set b="Initial data 3" where a=3; --echo Sync all changes --echo --------------------------------------- --sync_slave_with_master slave --sync_slave_with_master master delete from test.t2$EX; -- echo Test 2, read-update conflict with read tracking --connection slave --echo Stopping secondary slave stop slave; --connection master --echo Stopping primary slave stop slave; begin; update test.t1 set b="Primary first change 1" where a=1; update test.t1 set b="Primary first change 2" where a=2; commit; --connection slave SET ndb_log_exclusive_reads= 1; begin; select * from test.t1 where a = 1 for update; update test.t2 set b="Secondary first change 3" where a=3; commit; --echo Checking tables before conflict resolution --echo --------------------------------------- --connection master --echo **** Primary **** select * from test.t1 order by a; select * from test.t2 order by a; --echo Starting primary slave start slave; --connection slave --echo **** Secondary **** select * from test.t1 order by a; select * from test.t2 order by a; --sync_slave_with_master master --echo Primary should have rejected change from Secondary, keeping its value select * from test.t1 order by a; select * from test.t2 order by a; --source suite/ndb_rpl/t/ndb_trans_conflict_info.inc --source suite/ndb_rpl/t/ndb_trans_conflict_info_init.inc select NDB$OP_TYPE, b$old, b$new, NDB$CFT_CAUSE from test.t1$EX order by a; select NDB$OP_TYPE, b$old, b$new, NDB$CFT_CAUSE from test.t2$EX order by a; --connection slave -- Echo starting secondary slave start slave; --connection master --sync_slave_with_master slave --connection slave --echo Secondary should have been realigned to Primary --connection master --echo **** Primary **** select * from test.t1 order by a; select * from test.t2 order by a; --connection slave --echo **** Secondary **** select * from test.t1 order by a; select * from test.t2 order by a; --connection master update test.t1 set b="Initial data 1" where a=1; update test.t1 set b="Initial data 2" where a=2; update test.t2 set b="Initial data 3" where a=3; --echo Sync all changes --echo --------------------------------------- --sync_slave_with_master slave --sync_slave_with_master master delete from test.t1$EX; delete from test.t2$EX; -- echo Test 3, read-read conflict without read tracking --connection slave --echo Stopping secondary slave stop slave; --connection master --echo Stopping primary slave stop slave; SET ndb_log_exclusive_reads= 0; begin; select * from test.t1 where a = 1 for update; update test.t1 set b="Primary first change 2" where a=2; commit; --connection slave SET ndb_log_exclusive_reads= 0; begin; select * from test.t1 where a = 1 for update; update test.t2 set b="Secondary first change 3" where a=3; commit; --echo Checking tables before conflict resolution --echo --------------------------------------- --connection master --echo **** Primary **** select * from test.t1 order by a; select * from test.t2 order by a; --echo Starting primary slave start slave; --connection slave --echo **** Secondary **** select * from test.t1 order by a; select * from test.t2 order by a; --sync_slave_with_master master --echo Primary should not have rejected change from Secondary select * from test.t1 order by a; select * from test.t2 order by a; --source suite/ndb_rpl/t/ndb_trans_conflict_info.inc --source suite/ndb_rpl/t/ndb_trans_conflict_info_init.inc select NDB$OP_TYPE, b$old, b$new, NDB$CFT_CAUSE from test.t1$EX order by a; select NDB$OP_TYPE, b$old, b$new, NDB$CFT_CAUSE from test.t2$EX order by a; --connection slave -- Echo starting secondary slave start slave; --connection master --sync_slave_with_master slave --connection slave --echo Secondary should not have been realigned to Primary --connection master --echo **** Primary **** select * from test.t1 order by a; select * from test.t2 order by a; --connection slave --echo **** Secondary **** select * from test.t1 order by a; select * from test.t2 order by a; --connection master update test.t1 set b="Initial data 1" where a=1; update test.t1 set b="Initial data 2" where a=2; update test.t2 set b="Initial data 3" where a=3; -- echo Test 4, read-read conflict with read tracking --connection slave --echo Stopping secondary slave stop slave; --connection master --echo Stopping primary slave stop slave; SET ndb_log_exclusive_reads= 1; begin; select * from test.t1 where a = 1 for update; update test.t1 set b="Primary first change 2" where a=2; commit; --connection slave SET ndb_log_exclusive_reads= 1; begin; select * from test.t1 where a = 1 for update; update test.t2 set b="Secondary first change 3" where a=3; commit; --echo Checking tables before conflict resolution --echo --------------------------------------- --connection master --echo **** Primary **** select * from test.t1 order by a; select * from test.t2 order by a; --echo Starting primary slave start slave; --connection slave --echo **** Secondary **** select * from test.t1 order by a; select * from test.t2 order by a; --sync_slave_with_master master --echo Primary should have rejected change from Secondary, keeping its value select * from test.t1 order by a; select * from test.t2 order by a; --source suite/ndb_rpl/t/ndb_trans_conflict_info.inc --source suite/ndb_rpl/t/ndb_trans_conflict_info_init.inc select NDB$OP_TYPE, b$old, b$new, NDB$CFT_CAUSE from test.t1$EX order by a; select NDB$OP_TYPE, b$old, b$new, NDB$CFT_CAUSE from test.t2$EX order by a; --connection slave -- Echo starting secondary slave start slave; --connection master --sync_slave_with_master slave --connection slave --echo Secondary should have been realigned to Primary --connection master --echo **** Primary **** select * from test.t1 order by a; select * from test.t2 order by a; --connection slave --echo **** Secondary **** select * from test.t1 order by a; select * from test.t2 order by a; --connection master update test.t1 set b="Initial data 1" where a=1; update test.t1 set b="Initial data 2" where a=2; update test.t2 set b="Initial data 3" where a=3; --echo Sync all changes --echo --------------------------------------- --sync_slave_with_master slave --sync_slave_with_master master delete from test.t1$EX; delete from test.t2$EX; -- echo Test 5, read-update conflict with read tracking on unique secondary index create table test.t3$EX (NDB$SERVER_ID int unsigned, NDB$MASTER_SERVER_ID int unsigned, NDB$MASTER_EPOCH bigint unsigned, NDB$COUNT int unsigned, a int not null, b$old varchar(2000), b$new varchar(2000), c$old int, c$new int, d$old int, d$new int, NDB$OP_TYPE ENUM('WRITE_ROW','UPDATE_ROW','DELETE_ROW','REFRESH_ROW','READ_ROW') NOT NULL, NDB$CFT_CAUSE ENUM('ROW_DOES_NOT_EXIST','ROW_ALREADY_EXISTS','DATA_IN_CONFLICT','TRANS_IN_CONFLICT') NOT NULL, NDB$ORIG_TRANSID BIGINT UNSIGNED NOT NULL, primary key(NDB$SERVER_ID, NDB$MASTER_SERVER_ID, NDB$MASTER_EPOCH, NDB$COUNT)) ENGINE=NDB; --echo Populate ndb_replication table as necessary eval replace into mysql.ndb_replication values ("test", "t3", $SLAVE_SERVER_ID, 7, NULL), ("test", "t3", $MASTER_SERVER_ID, 7, "NDB\$EPOCH_TRANS()"); create table test.t3 ( a int primary key, b varchar(2000), c int not null unique, d int, key(d)) engine=ndb; --sync_slave_with_master slave --connection master --echo Add some data insert into test.t3 values (1, "Initial data 1", 1, 1), (2, "Initial data 2", 2, 2), (3, "Initial data 3", 3, 3), (4, "Initial data 4", 4, 4), (5, "Initial data 5", 5, 5), (6, "Initial data 6", 6, 6), (7, "Initial data 7", 7, 7), (8, "Initial data 8", 8, 8), (9, "Initial data 9", 9, 9), (10, "Initial data 10", 10, 10); --echo Show basic read tracking --echo --------------------------------------- --sync_slave_with_master slave --connection slave --echo Stopping secondary slave stop slave; --connection master --echo Stopping primary slave stop slave; begin; update test.t3 set b="Primary first change 1" where a=1; update test.t3 set b="Primary first change 2" where a=2; commit; --connection slave SET ndb_log_exclusive_reads= 1; begin; select * from test.t3 where c = 1 for update; update test.t2 set b="Secondary first change 3" where a=3; commit; --echo Checking tables before conflict resolution --echo --------------------------------------- --connection master --echo **** Primary **** select * from test.t2 order by a; select * from test.t3 order by a; --echo Starting primary slave start slave; --connection slave --echo **** Secondary **** select * from test.t2 order by a; select * from test.t3 order by a; --sync_slave_with_master master --echo Primary should have rejected change from Secondary, keeping its value select * from test.t2 order by a; select * from test.t3 order by a; --source suite/ndb_rpl/t/ndb_trans_conflict_info.inc --source suite/ndb_rpl/t/ndb_trans_conflict_info_init.inc select NDB$OP_TYPE, b$old, b$new, c$old, c$new, NDB$CFT_CAUSE from test.t3$EX order by a; --connection slave -- Echo starting secondary slave start slave; --connection master --sync_slave_with_master slave --connection slave --echo Secondary should have been realigned to Primary --connection master --echo **** Primary **** select * from test.t2 order by a; select * from test.t3 order by a; --connection slave --echo **** Secondary **** select * from test.t2 order by a; select * from test.t3 order by a; --connection master update test.t2 set b="Initial data 3" where a=3; update test.t3 set b="Initial data 1" where a=1; update test.t3 set b="Initial data 2" where a=2; --echo Sync all changes --echo --------------------------------------- --sync_slave_with_master slave --sync_slave_with_master master delete from test.t2$EX; delete from test.t3$EX; -- echo Test 6, read-update conflict with read tracking on ordered secondary index --echo Show basic read tracking --echo --------------------------------------- --sync_slave_with_master slave --connection slave --echo Stopping secondary slave stop slave; --connection master --echo Stopping primary slave stop slave; begin; update test.t3 set b="Primary first change 1" where a=1; update test.t3 set b="Primary first change 2" where a=2; commit; --connection slave SET ndb_log_exclusive_reads= 1; begin; select * from test.t3 where d = 1 for update; update test.t2 set b="Secondary first change 3" where a=3; commit; --echo Checking tables before conflict resolution --echo --------------------------------------- --connection master --echo **** Primary **** select * from test.t2 order by a; select * from test.t3 order by a; --echo Starting primary slave start slave; --connection slave --echo **** Secondary **** select * from test.t2 order by a; select * from test.t3 order by a; --sync_slave_with_master master --echo Primary should have rejected change from Secondary, keeping its value select * from test.t2 order by a; select * from test.t3 order by a; --source suite/ndb_rpl/t/ndb_trans_conflict_info.inc --source suite/ndb_rpl/t/ndb_trans_conflict_info_init.inc select NDB$OP_TYPE, b$old, b$new, c$old, c$new, NDB$CFT_CAUSE from test.t3$EX order by a; --connection slave -- Echo starting secondary slave start slave; --connection master --sync_slave_with_master slave --connection slave --echo Secondary should have been realigned to Primary --connection master --echo **** Primary **** select * from test.t2 order by a; select * from test.t3 order by a; --connection slave --echo **** Secondary **** select * from test.t2 order by a; select * from test.t3 order by a; --connection master update test.t2 set b="Initial data 3" where a=3; update test.t3 set b="Initial data 1" where a=1; update test.t3 set b="Initial data 2" where a=2; --echo Sync all changes --echo --------------------------------------- --sync_slave_with_master slave --sync_slave_with_master master delete from test.t2$EX; delete from test.t3$EX; -- echo Test 7, read-update conflict with read tracking on table scan --echo Show basic read tracking --echo --------------------------------------- --sync_slave_with_master slave --connection slave --echo Stopping secondary slave stop slave; --connection master --echo Stopping primary slave stop slave; begin; update test.t3 set b="Primary first change 1" where a=1; update test.t3 set b="Primary first change 2" where a=2; commit; --connection slave SET ndb_log_exclusive_reads= 1; begin; select * from test.t3 where b like "Initial data 1" for update; update test.t2 set b="Secondary first change 3" where a=3; commit; --echo Checking tables before conflict resolution --echo --------------------------------------- --connection master --echo **** Primary **** select * from test.t2 order by a; select * from test.t3 order by a; --echo Starting primary slave start slave; --connection slave --echo **** Secondary **** select * from test.t2 order by a; select * from test.t3 order by a; --sync_slave_with_master master --echo Primary should have rejected change from Secondary, keeping its value select * from test.t2 order by a; select * from test.t3 order by a; --source suite/ndb_rpl/t/ndb_trans_conflict_info.inc --source suite/ndb_rpl/t/ndb_trans_conflict_info_init.inc select NDB$OP_TYPE, b$old, b$new, c$old, c$new, NDB$CFT_CAUSE from test.t3$EX order by a; --connection slave -- Echo starting secondary slave start slave; --connection master --sync_slave_with_master slave --connection slave --echo Secondary should have been realigned to Primary --connection master --echo **** Primary **** select * from test.t2 order by a; select * from test.t3 order by a; --connection slave --echo **** Secondary **** select * from test.t2 order by a; select * from test.t3 order by a; --connection master update test.t2 set b="Initial data 3" where a=3; update test.t3 set b="Initial data 1" where a=1; update test.t3 set b="Initial data 2" where a=2; --echo Sync all changes --echo --------------------------------------- --sync_slave_with_master slave --sync_slave_with_master master delete from test.t2$EX; delete from test.t3$EX; # Cleanup --connection master drop table mysql.ndb_replication; drop table test.t1, test.t2, test.t3; drop table test.t1$EX, test.t2$EX, test.t3$EX; --sync_slave_with_master slave --connection slave SET ndb_log_exclusive_reads= 0; flush logs; --sync_slave_with_master master stop slave; reset slave; --source include/rpl_end.inc
Close