4 ms·
Building and Deploying MySQL Raft at Meta
- rektide 3y agoNeat work. > Realizing that control plane operations like promotions and membership changes were the trigger of most issues, we wanted the control plane and data plane operations to be part of the same replicated log. For this, we used the well-understood consensus protocol Raft. This also meant that the source of truth of membership and leadership moved inside the server (mysqld). This was the single biggest contribution of bringing in Raft because it enabled provable correctness (safety property) across promotions and membership changes into the MySQL server. Tons of other things in play here & great breakdowns of troubling cases & new features they had to handle. For example, making replicas also use binlog rather than a special replica log, so they could easily switch over. Decent mix of open source & closed tech.