Übersetzer: Zhishutang Aufschwung. Wir haben hart daran gearbeitet, die MySQL-Replikation durch die Einführung neuer und interessanter Funktionen umfassend zu verbessern. Darüber hinaus hören wir auf Vorschläge und Feedback aus der Community. Daher ist es uns eine Ehre, mit Ihnen die Meilenstein-Veröffentlichung der neuesten Version (MySQL 8.0.2) zu erleben, und wir haben einige der bemerkenswerten Änderungen zusammengefasst. Folgen Sie unserem Blog unten, während wir einige Einblicke in diese neuen Funktionen geben.
Sie können weitere Informationen im Leistungsschema anzeigen: In den vorhandenen Tabellen des Leistungsschemas wurde die Lesbarkeit der zugehörigen statistischen Informationen verbessert. Die Tabellen „replication_group_members“ und „replication_group_member_stats“ wurden ebenfalls erweitert. Jetzt können Sie die Rolleninformationen von Gruppenmitgliedern, Gruppenmitgliedsversionen und Transaktionszählern (lokal/remote) deutlich sehen
Bestanden Weisen Sie Gewichtungen zu, um die Wahl der Master-Datenbank festzulegen: Benutzer können die Wahl der Master-Datenbank steuern, indem sie die Gewichtungen der Gruppenmitglieder angeben. Wenn der vorhandene Master-Knoten die Gruppenreplikation verlässt, wird der Knoten mit der höchsten Gewichtung zum Master-Knoten hochgestuft .
Einige Feinabstimmungselemente zum Flusskontrollmechanismus hinzugefügt: Benutzer können jetzt die Flusskontrollkomponenten feinabstimmen. Sie können Mindestkontingente für jedes Mitglied, Mindest-Commit-Kontingente für die gesamte Gruppe, Prozesskontrollfenster und mehr definieren.
MySQL 8.0.1 hat dem MySQL-Replikationskern-Framework viele überzeugende Funktionen hinzugefügt. MySQL 8.0.2 hat auf dieser Basis große Verbesserungen vorgenommen, hauptsächlich wie folgt:
Verbesserung der Verwaltung des Empfängerthreads (IO), auch wenn die Festplatte voll ist: Diese Funktion wird verbessert die Effizienz der internen Koordination zwischen dem Empfänger und anderen Threads und reduziert Konflikte untereinander. Für Endbenutzer bedeutet dies, dass Überwachungsvorgänge wie „SHOW SLAVE STATUS“ nicht mehr blockiert werden, wenn die Festplatte voll ist und der Empfänger-Thread blockiert. Es führt außerdem einen neuen Thread-Status ein (der Empfänger-Thread wartet auf Speicherplatzressourcen und Sie können den Speicherplatz nicht freigeben, damit der Empfänger-Thread die unvollendete Arbeit fortsetzen kann). Stoppen Sie es manuell, und im Allgemeinen wird es kein Problem geben. Wenn jedoch zu diesem Zeitpunkt eine Schreibtransaktion gelöscht wird und das Relay-Protokoll nicht in einem konsistenten Zustand ist, müssen Sie besonders vorsichtig sein, wenn der Empfänger-Thread das Relay-Protokoll abfragt und darauf wartet, dass Speicherplatz verfügbar wird.
Weitere Metadateninformationen im Binärprotokoll aufzeichnen: Transaktionslänge zu globalen Transaktionsprotokollereignissen hinzufügen. Dies kann für unsere zukünftige Optimierungsarbeit eine große Hilfe sein und verbessert auch die Lesbarkeit des Binärprotokolls.
Wenn Sie sich mit dem Innenleben der MySQL-Replikation befassen, teilen wir Ihnen gerne mit, dass wir einige Aufräumarbeiten durchgeführt und eine interessante Ergänzung zu unseren Basiskomponentendiensten hinzugefügt haben:
Gruppenmitgliedschaftsereignisse können an andere Komponenten innerhalb weitergegeben werden. Durch die Nutzung der neuen zugrunde liegenden Dienstarchitektur kann das Gruppenreplikations-Plug-in jetzt andere Komponenten im Server über mit Mitgliedern verbundene Ereignisse benachrichtigen. Zum Beispiel die Benachrichtigung von Gruppenmitgliedern über einen Rollenwechsel, einen Schiedsverlust usw. Andere Komponenten können auf diese Informationen reagieren, und Benutzer können auch eigene Komponenten entwickeln, um diese Ereignisse aufzuzeichnen und zu erkennen.
Entfernen Sie redundante Informationen zu Knoten aus der internen Struktur von einfacher, weniger fehleranfällig und einfacher zu überwachen, welche Knoten dem Cluster beitreten oder ihn verlassen, während vorherige Informationen im System beibehalten werden.
Mehrere Verbesserungen am XCom-Kern und neuer Codierungsstil: Wir haben mehrere Fehler behoben. Als Entwickler werden Sie beim Betrachten des Quellcodes unserer Paxos-Implementierung feststellen, dass der überarbeitete Code vorliegen wird leichter zu lesen und zu verstehen.
Einige Quellcodes für die Binärprotokollkonvertierung alter Versionen entfernt: Bei dieser Bereinigungsarbeit haben wir einige Binärprotokolle gelöscht, die von der alten Version meiner Datenbank erstellt wurden, und sie in solche konvertiert, die verwendet werden können Wird von der neuen Version erkannt (unterstützt derzeit nur MySQL5.0 und höher).
Eine weitere interessante Sache: Wir haben die folgenden Replikationsstandards in MySQL 8.0.2 geändert:
Replizierte Metadateninformationen werden im INNODB-System gespeichert Tabellen standardmäßig: Dadurch wird die MySQL-Replikationsfunktion leistungsfähiger. Wenn die Replikation abstürzt und automatisch wiederhergestellt wird, können die Eigenschaften von INNODB-Transaktionen verwendet werden, um die Korrektheit der Wiederherstellung am angegebenen Speicherort sicherzustellen. Darüber hinaus erfordern neue Funktionen auch die Speicherung von Metadaten in Form von Tabellen (z. B. Gruppenreplikation und Multi-Source-Replikation), was mit dem neuen Datenwörterbuch von MySQL 8 übereinstimmt.
Hash-Scan basierend auf Zeilendaten ist standardmäßig aktiviert: Dies ist möglicherweise kein allgemein anerkannter Ansatz, aber wenn die Slave-Bibliothek über einige Tabellen ohne Primärschlüsselbeschränkungen verfügt, wird die Leistung verbessert verbessern. In diesem Fall minimiert diese Änderung die Leistungseinbußen bei der Verwendung der zeilenbasierten Replikation, da dadurch die Anzahl der Tabellenscans reduziert wird, die zum Aktualisieren aller Zeilen erforderlich sind (der Parameter slave_rows_search_algorithms ist standardmäßig auf TABLE_SCAN, INDEX_SCAN, HASH_SCAN eingestellt).
Der Parameter „transaction-write-set-extraction“ ist standardmäßig aktiviert: Verwenden Sie die Schreibsatzextraktion, starten Sie die Gruppenreplikation für Benutzer oder verfolgen Sie den Master mithilfe von WRITESET-basierten Abhängigkeiten auf dem Masterserver.
Binärprotokoll ist standardmäßig aktiviert. Ablaufzeit: „expire-logs-days“ ist standardmäßig auf 30 (30 Tage) eingestellt.
Wie Sie Wissen Sie, wir waren sehr beschäftigt. Tatsächlich wurde MySQL 8.0.2 Milestone Release veröffentlicht. Auf der Replikationsseite freuen wir uns sehr, dass viele interessante Funktionen hinzugefügt werden.
Es wird einen eigenen Blog geben, um diese Funktionen vorzustellen und zu erklären. Sie können es auch selbst zum Testen herunterladen (Download-Adresse). Es gibt keine GA-Version. Und vergessen Sie nicht: Wir freuen uns über Ihr Feedback. Sie können uns Feedback über Fehlerberichte oder Funktionsberichte geben, die Mailingliste kopieren oder einfach einen Kommentar zu diesem (oder einem nachfolgenden) Blogbeitrag hinterlassen. MySQL 8 wird immer besser und spannender.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die neuen Replikationsfunktionen von MySQL 8.0.2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!