MXS-860: Detect whether replication is configured

The `detect_stale_slave` functionality used to only work when MaxScale had
the knowledge that a master server has existed and that replication was
working at some point in time. This might be a "safe" way to do it in
regards to staleness of the data but in practice it is preferrable to
always allow slave to be used for reads.

This change adds the missing functionality to the monitor by assigning
slave status to all servers which are configured as replication slaves
when no master can be found.

The new member variable that was added to the SERVER should be removed in
2.1 where the server_info offers the same functionalty without "polluting"
the SERVER type.
This commit is contained in:
Markus Makela
2016-09-12 05:06:42 +03:00
parent 8be833640f
commit 6dc75d4b9c
5 changed files with 18 additions and 4 deletions

View File

@ -88,6 +88,7 @@ server_alloc(char *servname, char *protocol, unsigned short port)
server->persistmax = 0;
server->persistmaxtime = 0;
server->persistpoolmax = 0;
server->slave_configured = false;
spinlock_init(&server->persistlock);
spinlock_acquire(&server_spin);