Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-15892

DO_DOMAIN_IDS + master_delay + multi-master causes slaves to crash

    XMLWordPrintable

Details

    Description

      1.Setup replication on slave as follows, it works fine.

      a) test 1
      CHANGE MASTER 'Mysql1' TO master_host='Mysql1',master_user='replication',master_password='replication',master_use_gtid=slave_pos;
       
      b) test 2
      CHANGE MASTER 'Mysql1' TO master_host='Mysql1',master_user='replication',master_password='replication',master_use_gtid=slave_pos,DO_DOMAIN_IDS=(10);
       
      c) test 3
      CHANGE MASTER 'Mysql1' TO master_host='Mysql1',master_user='replication',master_password='replication',master_use_gtid=slave_pos,master_delay=10;
      

      2.Setup replication (DO_DOMAIN_IDS + master_delay) on slave, there is a problem with non-DO_DOMAIN_IDS when appling on slave.

      #Mysql4 (Slave) , test 4
      CHANGE MASTER 'Mysql1' TO master_host='Mysql1',master_user='replication',master_password='replication',master_use_gtid=slave_pos,DO_DOMAIN_IDS=(10),master_delay=10;
       
      #Mysql1 (Master)
      create table test.a(a int) engine=innodb;
      create table test.b(a int) engine=myisam;
       
      watch -n 1 -e "mysql -uroot test -e \"insert into a select 1;insert into b select 1;select count(*) as a from a;select count(*) as b from b\""
       
      #We can see that the GITDs of both domain 1 and domain 10 are growing
      $ mysql -uroot -e "show global variables like 'gtid_current_pos'"; sleep 5; mysql -uroot -e "show global variables like 'gtid_current_pos'"
      +------------------+------------------------+
      | Variable_name    | Value                  |
      +------------------+------------------------+
      | gtid_current_pos | *1-1-223546*,*10-1-233617* |
      +------------------+------------------------+
      +------------------+------------------------+
      | Variable_name    | Value                  |
      +------------------+------------------------+
      | gtid_current_pos | *1-1-223551*,*10-1-233622* |
      +------------------+------------------------+
       
      #Mysql4 (Slave)
      #We can see that the GITD of domain 10 is growing normal, but GTID of domain 1 has been stopped.
      #If expire_logs_days is set on the master, slave will fail to restart after expire_logs_days days.
      $ mysql -uroot -e "show all slaves status\G" | grep -i gtid; sleep 5; mysql -uroot -e "show all slaves status\G" | grep -i gtid
                         Using_Gtid: Slave_Pos
                        Gtid_IO_Pos: *1-1-223742*,*10-1-233813*,2-2-105
                     Gtid_Slave_Pos: *1-1-223312*,2-2-105,*10-1-233803*
                         Using_Gtid: Slave_Pos
                        Gtid_IO_Pos: *1-1-223747*,*10-1-233818*,2-2-105
                     Gtid_Slave_Pos: *1-1-223312*,2-2-105,*10-1-233808*
      

      3.Setup replication (DO_DOMAIN_IDS + master_delay + multi-master) on slave, will cause the query to slow down, such as, "show all slaves status; show global variables;" . And a few days later, slave has been killed by OOM killer in my UAT env.

      #Mysql4 (Slave) , test 5
      CHANGE MASTER 'Mysql1' TO master_host='Mysql1',master_user='replication',master_password='replication',master_use_gtid=slave_pos,DO_DOMAIN_IDS=(10),master_delay=10;
      CHANGE MASTER 'Mysql2' TO master_host='Mysql2',master_user='replication',master_password='replication',master_use_gtid=slave_pos,DO_DOMAIN_IDS=(10),master_delay=10;
      CHANGE MASTER 'Mysql3' TO master_host='Mysql3',master_user='replication',master_password='replication',master_use_gtid=slave_pos,DO_DOMAIN_IDS=(10),master_delay=10;
       
      #Mysql1 (Master)
      create table test.a(a int) engine=innodb;
      create table test.b(a int) engine=myisam;
       
      watch -n 1 -e "mysql -uroot test -e \"insert into a select 1;insert into b select 1;select count(*) as a from a;select count(*) as b from b\""
       
      #Mysql4 (Slave)
      #"show all slaves status\G" is very very slow.
      > show all slaves status\G
      ...
      3 rows in set (20.21 sec)
       
      > show global variables;
      ...
      632 rows in set (16.52 sec)
      
      

      Attachments

        1. my_galera1.cnf
          5 kB
        2. my_galera2.cnf
          5 kB
        3. my_galera3.cnf
          5 kB
        4. my_slave.cnf
          5 kB

        Activity

          People

            sachin.setiya.007 Sachin Setiya (Inactive)
            920895156@qq.com Devin Yu
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.