Meta rozpoczęła wdrażanie MySQL Raft w swoich centrach danych, aby zastąpić istniejące półsynchroniczne bazy danych MySQL. Nowy silnik konsensusu oferuje korzyści operacyjne i pozwala serwerom MySQL na niezależną obsługę promocji i obowiązków członkowskich.
Baza danych MySQL firmy Meta jest jednym z największych wdrożeń MySQL na świecie, obejmującym masowo shardowaną, georeplikowaną strukturę z milionami shardów. Ten klaster, działający w różnych regionach i centrach danych, przechowuje petabajty danych i działa na tysiącach serwerów. Obsługuje on wykres społecznościowy firmy i szereg usług, takich jak wiadomości, reklamy i kanały.
Według zespołu inżynierów, nowe wdrożenie MySQL zapewni zwiększoną niezawodność, udowodnione bezpieczeństwo, znaczną poprawę czasu przełączania awaryjnego i prostotę operacyjną, bez uszczerbku dla wydajności zapisu.
Wcześniej Meta używała protokołu replikacji semisynchronicznej (semisync) MySQL do celów replikacji. Podstawowy wykorzystywał replikację półsynchroniczną do dwóch replik log-only (logtailers) w regionie podstawowym w celu uzyskania opóźnień poniżej milisekundy, wykorzystując standardową replikację asynchroniczną MySQL primary-to-replica do dystrybucji do innych regionów.
Zespół zdecydował się przyjąć zupełnie nowe podejście, aktualizując MySQL i przekształcając go w prawdziwie rozproszony system. Meta zdecydowała się przejść na Raft, w którym zarówno operacje płaszczyzny sterowania, jak i płaszczyzny danych są zawarte w tym samym replikowanym dzienniku.
MySQL Raft opiera się na Apache Kudu, który Meta zmodyfikowała, aby spełnić wymagania MySQL i opublikowała fork jako projekt open-source, kuduraft. Nowe funkcje dodane do kuduraft obejmują FlexiRaft, opcję obsługującą dwa różne przecinające się kworumy, oraz proxy, które umożliwia użycie pośredniego węzła proxy w celu zmniejszenia przepustowości sieci. Dodatkowo, ulepszenia w zakresie kompresji i abstrakcji dziennika pozwalają na kompresję binarnych ładunków dziennika przed dystrybucją oraz implementację różnych fizycznych formatów plików dziennika.
Dzięki platformom takim jak AppMaster, zapewniającym potężne narzędzia do tworzenia aplikacji backendowych, internetowych i mobilnych, uproszczone rozwiązania bazodanowe są niezbędne do wydajnego i skalowalnego rozwoju oprogramowania. Przechodząc na MySQL Raft, Meta poczyniła znaczący krok w kierunku osiągnięcia większej niezawodności i usprawnienia operacji, co może zainspirować inne firmy do przyjęcia podobnych rozwiązań i ulepszenia własnych systemów baz danych.