Hi,
As we are now testing your all brand new MaxScale 1.0 beta I must say you did an awesome job guys! A lot has improved since the previous versions we tested and great to see more and more modules being integrated.
However I did find two things that gave us some trouble:
1. we are using master-master (multi-master) topology and using the monitor on these nodes reveals they are both slaves:
MaxScale> show servers
Server 0x1c13a10 (stg_services_node1)
Server: somehost1.spil
Status: Slave, Running
Protocol: MySQLBackend
Port: 3306
Server Version: 5.5.38-35.2-log
Node Id: 144
Master Id: 145
Slave Ids:
Repl Depth: 3
Number of connections: 0
Current no. of conns: 0
Current no. of operations: 0
Server 0x1c138d0 (stg_services_node2)
Server: somehost2.spil
Status: Slave, Running
Protocol: MySQLBackend
Port: 3306
Server Version: 5.5.38-35.2-log
Node Id: 145
Master Id: 144
Slave Ids:
Repl Depth: 3
Number of connections: 0
Current no. of conns: 0
Current no. of operations: 0
As you can see both have the master set to its peer and no slave ids.
I made sure the report-host is correctly set (I read that somewhere) so this is not the issue.
However if I restart one of the nodes the other one gets marked as a master for a short while (longer than the refresh of the monitor):
MaxScale> show servers
Server 0x1c13a10 (stg_services_node1)
Server: somehost1.spil
Status: Slave, Running
Protocol: MySQLBackend
Port: 3306
Server Version: 5.5.38-35.2-log
Node Id: 144
Master Id: 145
Slave Ids:
Repl Depth: 1
Number of connections: 0
Current no. of conns: 0
Current no. of operations: 0
Server 0x1c138d0 (stg_services_node2)
Server: somehost2.spil
Status: Master, Running
Protocol: MySQLBackend
Port: 3306
Server Version: 5.5.38-35.2-log
Node Id: 145
Master Id: -1
Slave Ids: 144
Repl Depth: 0
Number of connections: 0
Current no. of conns: 0
Current no. of operations: 0
However after a few runs it "auto-corrects" itself back to the slave-slave situation. :(
For our crappy old HA solution (MMM) we do require a Master-Master topology and the easiest way to determine which server is master is by looking which one isn't set as read only:
(root@master) [(none)]> show global variables like 'read_only';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only | OFF |
+---------------+-------+
1 row in set (0.00 sec)
(root@slave) [(none)]> show global variables like 'read_only';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only | ON |
+---------------+-------+
1 row in set (0.00 sec)
Another option would be that we will use the floating ip address set by our HA solution, but to do so we absolutely need to have the connection to the writer not being monitored as it would end up with the same issue as described above.
Would it be possible to pick up this type of master-determination or make a "write only" connector that doesn't need monitoring?
Thanks!
Regards,
Art
--
Art van Scheppingen
Spil Games
http://engineering.spilgames.com