codership / glb

Galera Load Balancer - a simple TCP connection proxy and load-balancing library
GNU General Public License v2.0
153 stars 51 forks source link

GLB_DST_AVOID should not be zero #15

Closed bhelm closed 9 years ago

bhelm commented 9 years ago

If you bootstrap your cluster, you have the problem that you start with a single node and join another. The first and only node will get into Donor/Desynced state. If you use the watchdog feature, this will cause glbd to weight it with 0.000, so nobody is able to use this node. If using xtrabackup sync method, the first node will be useable for the most of the time, so there is no reason not to redirect traffic to it while it is donating (there is only a short period where WSREP is not ready errors can occur).

i solved this for me by simply setting GLB_DST_AVOID to 0.001 in glb_wdog.c:394 so a desync/donor server is only used if there is no alternative.

This could be a problem in single mode, because i think it won't change the active server if the weight is not zero or below, right?

Thank you.

bhelm commented 9 years ago

Also AVOID is documented like that: GLB_DST_AVOID, //! destination better be avoided (overloaded/blocked) if a server is overloaded, i think its also better to use it only of there is no alternative instead of not using it in any case.

ayurchen commented 9 years ago

See comments in mysql.sh script. It accepts an option -d which can be used to modify donor policy on startup.

bhelm commented 9 years ago

that worked, thanks for the hint.