vitess-gh/config
Anthony Yeh a3efb4ebd2 Support semi-sync without async fallback.
When using semi-sync with rpl_semi_sync_master_wait_no_slave=1 and
rpl_semi_sync_master_timeout=[effectively infinite], it's necessary to
toggle master-side semi-sync at the proper times to prevent slaves from
getting stuck (since they have no slaves of their own to ACK).

This commit adds a new vttablet flag -enable_semi_sync, which causes the
replication-management features of Vitess (e.g. InitShardMaster and
various reparent operations) to automatically manage semi-sync settings.

With these settings, it becomes (reasonably) safe to reparent away from
an unresponsive master, as long as the following can be verified:

* All semi-sync slaves have stopped replicating from the old master.
* The chosen new master is the farthest ahead in replication.

Currently we only allow slaves marked in Vitess terms as "replica"
tablets to be semi-sync slaves (i.e. to send ACKs). Vitess slaves marked as
"rdonly" will NOT ACK, because they are not eligible to become masters,
so we never want them to be the only slave with the latest update.
This means when using semi-sync, every shard must have at least 2 live
"replica" type tablets (including the master) in order to accept writes.
2016-02-24 10:12:47 -08:00
..
mycnf Support semi-sync without async fallback. 2016-02-24 10:12:47 -08:00
zkcfg add necessary config files 2012-07-24 01:06:19 -07:00
gomysql.pc.tmpl standardize on a single way to use mysql 2012-09-13 11:12:27 -07:00
init_db.sql Make MySQL users and privileges configurable. 2015-11-10 11:41:24 -08:00
zk-client-dev.json add necessary config files 2012-07-24 01:06:19 -07:00