
5/16/2023 · Anirban Rahut, Abhinav Sharma, Yichen Shen, Ahsanul Haque
What this post added
This post details the implementation of MySQL Raft at Meta, a system that integrates the Raft consensus engine with MySQL to create a replicated state machine. It replaces the previous semisynchronous replication protocol with a Raft-based approach, enhancing reliability, safety, failover time, and operational simplicity. Key technical contributions include the development of the kuduraft library (a fork of Apache Kudu with enhancements like FlexiRaft, proxying, compression, log abstraction, and primary ban), the MyRaft MySQL plugin for interfacing with Raft, and novel replication topologies and write transaction flows leveraging Raft for consensus. The post also describes modifications to MySQL's binary log and crash recovery mechanisms to support the Raft protocol.