[MXS-85] MariaDB 10 compatilbity with bin log router Created: 2015-04-02  Updated: 2015-07-21  Resolved: 2015-07-21

Status: Closed
Project: MariaDB MaxScale
Component/s: binlogrouter
Affects Version/s: 1.1.0
Fix Version/s: 1.2.0

Type: Task Priority: Major
Reporter: Dipti Joshi (Inactive) Assignee: Massimiliano Pinto (Inactive)
Resolution: Fixed Votes: 1
Labels: None


 Comments   
Comment by Massimiliano Pinto (Inactive) [ 2015-04-04 ]

MariaDB10 compatibility with BinLog router currently has such issues so far:

  • Binlog Downloaded from Master server have same size but different checksum
  • mysqlbinlog utility (mariadb 10) may download binlogs but wrong position is reported in MaxScale logs
    i.e. requested binlog file binlog.004955 from position 532575944708

MaxScale Binlog Router seems working with MariaDB slaves (i.e insert into the master MariaDB 10 are passed to the slaves via MaxScale)

As customer tests start with mysqlbinlog (before adding any slaves), the compatibily with mysqbinog should be fixed as first step.

Comment by Massimiliano Pinto (Inactive) [ 2015-05-07 ]

Current proposed solution is solution is:

1) addition of mariadb10-compatibility roputer option (default = 0)

2)
MAX_EVENT_TYPE is 0x23 for mysql/mariadb 5.5 and mysql 5.6
MAX_EVENT_TYPE_MARIADB10 is 0xa3 for MariaDB 10 only

binlogrouter stops on error is event_type > MAX_EVENT_TYPE based on router->mariadb10_compat (set by mariadb10-compatibility option)

3) binlog router to master registration phase depends on mariadb10-compatibility.
If set to 1 (the master is a mariadb 10 server) there is a branch in the registration state machine, mainly sending SET @mariadb_slave_capability=4 and storing the result to send back to slave that registers itself to binlog router

4) mariadb10 slave registering itself to binlogrouter with mariadb/mysql 5.5, 5.6 master sends SET @mariadb_slave_capability=4 and gets an ok packet

5) If master is mariadb10 and slave is version 5 is not possible to allow replication as currently binlogrouter cannot skip stored GTID events in binlog files, so the replication is denied:

MySQL> SHOW SLAVE STATUS\G

Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Master command COM_REGISTER_SLAVE failed: MariaDB 10 Slave is required for Slave registration (Errno: 2003)

Generated at Thu Feb 08 03:56:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.