TiDB 3.0 verteilte DBMS-Version

Verfügbar verteilte DBMS-Version TiDB 3.0unter dem Einfluss von Google-Technologien entwickelt Schlüssel и F1. TiDB gehört zur Kategorie der hybriden HTAP-Systeme (Hybrid Transactional/Analytical Processing), die sowohl Echtzeittransaktionen (OLTP) bereitstellen als auch analytische Abfragen verarbeiten können. Das Projekt ist in Go und geschrieben vertrieben von lizenziert unter Apache 2.0.

TiDB-Funktionen:

  • Unterstützung für SQL und Bereitstellung einer mit dem MySQL-Protokoll kompatiblen Client-Schnittstelle, die die einfache Anpassung vorhandener für MySQL geschriebener Anwendungen an TiDB ermöglicht und Ihnen auch die Verwendung gängiger Client-Bibliotheken ermöglicht. Zusätzlich zum MySQL-Protokoll können Sie die JSON-basierte API und den Connector für Spark verwenden, um auf das DBMS zuzugreifen.
  • Von den Funktionen von SQL werden Indizes, Aggregatfunktionen, GROUP BY, ORDER BY, DISTINCT-Ausdrücke, Zusammenführungen (LEFT JOIN / RIGHT JOIN / CROSS JOIN), Ansichten, Fensterfunktionen und Unterabfragen unterstützt. Die bereitgestellten Möglichkeiten reichen aus, um die Arbeit mit TiDB von Webanwendungen wie PhpMyAdmin, Gogs und WordPress;
  • Skalierung und Ausfallsicherheit: Speicher- und Verarbeitungsleistung können einfach durch das Hinzufügen neuer Knoten erhöht werden. Die Daten werden redundant auf die Knoten verteilt, damit der Betrieb fortgesetzt werden kann, wenn einzelne Knoten ausfallen. Fehler werden automatisch behandelt.
  • Das System garantiert Konsistenz und sieht für die Client-Software wie ein einziges großes DBMS aus, obwohl tatsächlich Daten von vielen Knoten beteiligt sind, um die Transaktion abzuschließen.
  • Um Daten physisch auf Knoten zu speichern, können verschiedene Backends verwendet werden, beispielsweise die lokalen Speicher-Engines GoLevelDB und BoltDB oder unsere eigene verteilte Speicher-Engine TiKV.
  • Die Möglichkeit, das Speicherschema asynchron zu ändern, sodass Sie Spalten und Indizes im Handumdrehen hinzufügen können, ohne die Verarbeitung laufender Vorgänge anzuhalten.

Haupt- Innovationen:

  • Es wurden Arbeiten zur Steigerung der Produktivität durchgeführt. Im Sysbench-Test ist Release 3.0 bei Auswahl- und Aktualisierungsvorgängen 2.1-mal schneller als der 1.5-Zweig und im TPC-C-Test 4.5-mal schneller. Optimierungen haben sich auf verschiedene Arten von Abfragen ausgewirkt, darunter IN-, DO- und NOT EXISTS-Unterabfragen, Tabellenzusammenführungsoperationen (JOIN), die Verwendung von Indizes und vieles mehr;
    TiDB 3.0 verteilte DBMS-VersionTiDB 3.0 verteilte DBMS-Version

  • Eine neue TiFlash-Speicher-Engine wurde hinzugefügt, die dank spaltenbasierter Speicherung eine höhere Leistung bei der Lösung analytischer Probleme (OLAP) ermöglicht. TiFlash ergänzt den bisher angebotenen TiKV-Speicher, der zeilenweise Daten in einem Schlüssel/Wert-Format speichert und sich besser für Transaktionsverarbeitungsaufgaben (OLTP) eignet. TiFlash arbeitet Seite an Seite mit TiKV und die Daten werden weiterhin auf TiKV repliziert, wie zuvor unter Verwendung des Raft-Protokolls, um den Konsens zu ermitteln. Für jede Gruppe von Raft-Replikaten wird jedoch ein zusätzliches Replikat erstellt, das in TiFlash verwendet wird. Dieser Ansatz ermöglicht eine bessere Ressourcenfreigabe zwischen OLTP- und OLAP-Aufgaben und stellt außerdem Transaktionsdaten sofort für analytische Abfragen zur Verfügung;

    TiDB 3.0 verteilte DBMS-Version

  • Es wurde ein verteilter Garbage Collector implementiert, der die Geschwindigkeit der Garbage Collection in großen Clustern deutlich erhöhen und die Stabilität verbessern kann;
  • Eine experimentelle Implementierung der rollenbasierten Zugriffskontrolle (RBAC) wurde hinzugefügt. Es ist auch möglich, Zugriffsrechte für die Operationen ANALYZE, USE, SET GLOBAL und SHOW PROCESSLIST festzulegen;
  • Möglichkeit hinzugefügt, SQL-Ausdrücke zu verwenden, um langsame Abfragen aus dem Protokoll zu extrahieren;
  • Es wurde ein Mechanismus zum schnellen Wiederherstellen gelöschter Tabellen implementiert, der es Ihnen ermöglicht, versehentlich gelöschte Daten wiederherzustellen;
  • Das Format der aufgezeichneten Protokolle wurde vereinheitlicht;
  • Unterstützung für den pessimistischen Sperrmodus hinzugefügt, wodurch die Transaktionsverarbeitung MySQL ähnlicher wird;
  • Unterstützung für Fensterfunktionen (Fensterfunktionen oder Analysefunktionen) hinzugefügt, die mit MySQL 8.0 kompatibel sind. Mit Fensterfunktionen können Sie Berechnungen für jede Abfragezeile unter Verwendung anderer Zeilen durchführen. Im Gegensatz zu Aggregatfunktionen, die einen gruppierten Satz von Zeilen in einer einzigen Zeile zusammenfassen, aggregieren Fensterfunktionen auf der Grundlage des Inhalts eines „Fensters“, das eine oder mehrere Zeilen aus dem Ergebnissatz enthält. Zu den implementierten Fensterfunktionen gehören:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK und ROW_NUMBER;

  • Experimentelle Unterstützung für Ansichten (VIEW) hinzugefügt;
  • Das Partitionierungssystem wurde verbessert, die Möglichkeit, Daten basierend auf einem Wertebereich oder Hashes in Abschnitte zu verteilen, wurde hinzugefügt;
  • Ein Framework zur Entwicklung von Plugins wurde hinzugefügt, beispielsweise wurden Plugins bereits für die Verwendung einer IP-Whitelist oder die Führung eines Audit-Protokolls vorbereitet;
  • Für die Funktion „EXPLAIN ANALYZE“ zur Erstellung eines Ausführungsplans für eine SQL-Abfrage (SQL Plan Management) wurde experimentelle Unterstützung bereitgestellt;
  • Befehl next_row_id hinzugefügt, um die ID der nächsten Zeile abzurufen;
  • Neue integrierte Funktionen JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE und NAME_CONST hinzugefügt.

Source: opennet.ru

Kommentar hinzufügen