Meta ha iniziato a distribuire MySQL Raft nei propri data center per sostituire i database semisincroni MySQL esistenti. Il nuovo motore di consenso offre vantaggi operativi e consente ai server MySQL di gestire in modo indipendente le promozioni e le responsabilità dei membri.
Il datastore MySQL di Meta è una delle più grandi implementazioni di MySQL al mondo, con una struttura massicciamente shardata e georeplicata con milioni di shard. Questo cluster, che opera in diverse regioni e centri dati, memorizza petabyte di dati e funziona su migliaia di server. Supporta il social graph dell'azienda e una serie di servizi come messaggistica, annunci e feed.
Secondo il team di ingegneri, la nuova implementazione di MySQL garantirà maggiore affidabilità, sicurezza dimostrabile, notevoli miglioramenti nei tempi di failover e semplicità operativa, senza compromettere le prestazioni di scrittura.
In precedenza, Meta utilizzava il protocollo di replica MySQL semisincrono (semisync). Il primario utilizzava la replica semisincrona verso due repliche di solo log (logtailers) all'interno della regione primaria per ottenere una latenza inferiore al millisecondo, impiegando la replica asincrona standard MySQL da primario a replica per la distribuzione alle altre regioni.
Il team ha deciso di adottare un approccio completamente nuovo, aggiornando MySQL e trasformandolo in un sistema veramente distribuito. Meta ha scelto di passare a Raft, con le operazioni del piano di controllo e del piano dati incluse nello stesso registro replicato.
MySQL Raft è basato su Apache Kudu, che Meta ha modificato per soddisfare i requisiti di MySQL e ne ha pubblicato un fork come progetto open-source, kuduraft. Le nuove funzionalità aggiunte a kuduraft includono FlexiRaft, un'opzione che supporta due diversi quorum intersecanti, e il proxying, che consente l'uso di un nodo intermedio proxy per ridurre la larghezza di banda della rete. Inoltre, i miglioramenti della compressione e dell'astrazione dei registri consentono la compressione dei payload binari dei registri prima della distribuzione e l'implementazione di vari formati di file di registro fisici.
Con piattaforme come AppMaster che forniscono potenti strumenti no-code per creare applicazioni backend, web e mobili, le soluzioni di database semplificate sono essenziali per uno sviluppo software efficiente e scalabile. Con il passaggio a MySQL Raft, Meta ha compiuto un passo significativo verso una maggiore affidabilità e una semplificazione delle operazioni, che potrebbe ispirare altre aziende ad adottare soluzioni simili e a migliorare i propri sistemi di database.