Shlomi Noach, MySQL engineer and author of gh-ost and orchestrator, writes on MySQL replication, schema changes and foreign keys.
Commenters cite it as an authoritative source on MySQL high availability, orchestrator, foreign key limits and online schema changes.
The author of Orchestrator also goes into questions like that at http://code.openark.org/blog/mysql/mysql-high-availability-tools-followup-the-missing-piece-orchestrator
Tangentially, in that blog post I was impressed by the list of companies running orchestrator.
> orchestrator is actively maintained by GitHub. It manages automated failovers at GitHub. It manages automated failovers at Booking.com, one of the largest MySQL setups on this planet. It manages automated failovers as part of Vitess. These are some names I’m free to disclose, and browsing the issues shows a few more users running failovers in production. Otherwise, it is used for topology management and visualization in a large number of companies such as Square, Etsy, Sendgrid, Godaddy and more.
I think it's relevant that Baron's post mentions a Github incident, and Github has been doing automatic failover of MySQL masters for a while now: https://githubengineering.com/orchestrator-github/
This post is also very relevant to the topic: http://code.openark.org/blog/mysql/mysql-high-availability-tools-followup-the-missing-piece-orchestrator
The post you link is still relevant to this discussion, but we can't ignore that 5 years have passed. It would be good to see 2017's Baron revisit the topic :)
Indeed. It seems there are many such tools available for MySQL: Openark kit [0] for instance, whose author also brought us gh-ost. Unfortunately most tools focus on just MySQL, and none really have an answer when you want to use (and enforce) foreign key constraints. Although it's hard to say, I suspect the users of these tools have "given up" on foreign key constraints.
[0] http://code.openark.org/forge/openark-kit
[1] https://github.com/github/gh-ost
The responder to that issue has also written some blog posts that go into more detail on the subject.
* https://code.openark.org/blog/mysql/things-that-dont-work-well-with-mysqls-foreign-key-implementation
* https://code.openark.org/blog/mysql/the-problem-with-mysql-foreign-key-constraints-in-online-schema-changes
Author of gh-ost here. Here are my thoughts on migrating to a different RDBMS: http://code.openark.org/blog/mysql/mysql-vs-postgresql-gh-ost-perspective