Data Warehousing and Analytics Platform
Building and deploying MySQL Raft at Meta

Building and deploying MySQL Raft at Meta

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.

Read the original post ↗