Meta hat mit dem Einsatz von MySQL Raft in seinen Rechenzentren begonnen, um seine bestehenden semisynchronen MySQL-Datenbanken zu ersetzen. Die neue Konsens-Engine bietet betriebliche Vorteile und ermöglicht es den MySQL-Servern, Promotions- und Mitgliedschaftsaufgaben unabhängig voneinander zu erledigen.
Der MySQL-Datenspeicher von Meta ist eine der größten MySQL-Implementierungen der Welt und verfügt über eine massiv gesplittete, georeplizierte Struktur mit Millionen von Shards. Dieser Cluster, der in verschiedenen Regionen und Rechenzentren betrieben wird, speichert Petabytes an Daten und läuft auf Tausenden von Servern. Er unterstützt den Social Graph des Unternehmens und eine Reihe von Diensten wie Messaging, Ads und Feed.
Nach Angaben des Entwicklerteams bietet die neue MySQL-Implementierung eine höhere Zuverlässigkeit, nachweisbare Sicherheit, erhebliche Verbesserungen bei der Failover-Zeit und einen einfacheren Betrieb, ohne die Schreibleistung zu beeinträchtigen.
Bisher verwendete Meta das semisynchrone (semisync) Replikationsprotokoll von MySQL für Replikationszwecke. Die primäre Region nutzte die semi-synchrone Replikation zu zwei reinen Log-Replikaten (Logtailer) innerhalb der primären Region, um eine Latenzzeit von weniger als einer Millisekunde zu erreichen, während für die Verteilung an andere Regionen die asynchrone Standardreplikation von MySQL von der Primär- zur Replik verwendet wurde.
Das Team entschied sich für einen völlig neuen Ansatz, indem es MySQL aktualisierte und in ein wirklich verteiltes System umwandelte. Meta entschied sich für den Wechsel zu Raft, bei dem sowohl die Operationen der Steuerungsebene als auch die der Datenebene im selben replizierten Protokoll enthalten sind.
MySQL Raft basiert auf Apache Kudu, das Meta an die Anforderungen von MySQL angepaßt und als Open-Source-Projekt kuduraft veröffentlicht hat. Zu den neuen Funktionen von kuduraft gehören FlexiRaft, eine Option, die zwei verschiedene sich überschneidende Quoren unterstützt, und Proxying, das die Verwendung eines Proxy-Zwischenknotens ermöglicht, um die Netzwerkbandbreite zu verringern. Darüber hinaus ermöglichen die Verbesserungen bei der Komprimierung und der Protokollabstraktion die Komprimierung von binären Protokollnutzdaten vor der Verteilung und die Implementierung verschiedener physischer Protokolldateiformate.
Angesichts von Plattformen wie AppMaster, die leistungsstarke No-Code-Werkzeuge für die Erstellung von Backend-, Web- und mobilen Anwendungen bieten, sind vereinfachte Datenbanklösungen für eine effiziente und skalierbare Softwareentwicklung unerlässlich. Mit der Umstellung auf MySQL Raft hat Meta einen bedeutenden Schritt in Richtung verbesserter Zuverlässigkeit und rationellerer Abläufe gemacht, der andere Unternehmen dazu inspirieren könnte, ähnliche Lösungen zu übernehmen und ihre eigenen Datenbanksysteme zu verbessern.