Yandex hat den Quellcode seines DBMS «YDB» veröffentlicht

Kürzlich haben die Nachrichten das verbreitet Yandex hat den Quellcode seines DBMS «YDB» veröffentlicht, die Unterstützung für den SQL-Dialekt und ACID-Transaktionen implementiert.

das DBMS wurde von Grund auf neu aufgebaut und zunächst mit Blick auf die Sicherstellung der Fehlertoleranz entwickelt, automatisches Failover und Skalierbarkeit. Es sollte beachtet werden, dass Yandex funktionierende YDB-Cluster gestartet hat, darunter mehr als 10 Knoten, die Hunderte von Petabyte an Daten speichern und Millionen von verteilten Transaktionen pro Sekunde bedienen.

Hauptneuheiten von YDB

Zu den Merkmalen, die sich von YDB abheben, gehört die Verwendung des relationalen Datenmodells mit YQL-Tabellen (YDB Query Language) wird verwendet, um das Datenschema abzufragen und zu definieren, das heißt ein SQL-Dialekt, der für die Arbeit mit großen verteilten Datenbanken geeignet ist. Beim Erstellen eines Speicherschemas wird eine baumartige Gruppierung von Tabellen unterstützt, die den Verzeichnissen eines Dateisystems ähnelt. Für die Arbeit mit Daten im JSON-Format wird eine API bereitgestellt.

Das Fähigkeit, fehlertolerante Konfigurationen zu erstellen die weiterhin funktionieren, wenn Festplatten, Nodes, Racks und sogar einzelne Rechenzentren ausfallen. YDB unterstützt die synchrone Bereitstellung und Replikation über drei Availability Zones hinweg, während der Zustand des Clusters im Falle eines Ausfalls einer der Zonen beibehalten wird.

Datenzugriffsunterstützung Verwenden von Scan-Abfragen, die für die Durchführung analytischer Ad-hoc-Abfragen in der Datenbank entwickelt wurden, die im schreibgeschützten Modus ausgeführt werden und einen GrPC-Stream zurückgeben.

Außerdem fällt es auf Speichern von Daten direkt auf Blockgeräten mit der PDisk-Komponente native und die VDisk-Schicht. Zusätzlich zu VDisk läuft DSProxy, das die Verfügbarkeit und Leistung von Festplatten analysiert, um sie auszuschließen, wenn Probleme erkannt werden.

Von der andere Eigenschaften das fällt auf:

  • Eine flexible Architektur, mit der Sie verschiedene Dienste auf YDB aufbauen können, bis hin zu virtuellen Blockgeräten und dauerhaften Warteschlangen. Eignung für verschiedene Arten von Workload: OLTP und OLAP (analytische Abfragen).
  • Unterstützung für Multi-User- (Multi-Tenant) und serverlose Konfigurationen.
  • Fähigkeit, Clients zu authentifizieren. Benutzer können ihre eigenen virtuellen Cluster und Datenbanken auf einer gemeinsam genutzten Infrastruktur erstellen und dabei den Ressourcenverbrauch in Bezug auf die Anzahl der Anfragen und die Datengröße berücksichtigen oder bestimmte Rechenressourcen und Speicherplatz mieten/reservieren.
  • Möglichkeit, die Nutzungsdauer der Aufzeichnungen für die automatische Löschung veralteter Daten anzupassen.
  • Die Interaktion mit dem DBMS und das Senden von Anfragen erfolgt über die Befehlszeilenschnittstelle, die integrierte Webschnittstelle oder das YDB SDK, das Bibliotheken für C++, C# (.NET), Go, Java, Node.js, PHP und Python bereitstellt.
  • Automatische Wiederherstellung nach Ausfällen mit minimaler Verzögerung für Anwendungen und Aufrechterhaltung der angegebenen Redundanz beim Speichern von Daten.
  • Automatische Erstellung von Indizes für den Primärschlüssel und die Möglichkeit, Sekundärindizes zu definieren, um die Effizienz des Zugriffs auf beliebige Spalten zu verbessern.
  • Horizontale Skalierbarkeit. Wenn die Last und Größe der gespeicherten Daten wächst, kann der Cluster einfach erweitert werden, indem neue Knoten verbunden werden. Datenverarbeitungs- und Speicherebenen sind getrennt, sodass Sie Datenverarbeitung und Speicher separat skalieren können. Das DBMS selbst überwacht die gleichmäßige Verteilung von Daten und Last unter Berücksichtigung der verfügbaren Hardware-Ressourcen. Es ist möglich, geografisch verteilte Konfigurationen zu implementieren, die mehrere Rechenzentren in verschiedenen Teilen der Welt abdecken.
  • Unterstützung für ein starkes Konsistenzmodell und ACID-Transaktionen bei der Verarbeitung von Abfragen, die sich über mehrere Knoten und Tabellen erstrecken. Um die Leistung zu verbessern, können Sie die Konsistenzprüfung selektiv deaktivieren.
  • Automatische Datenreplikation, automatische Partitionierung (Partitionierung, Sharding) bei steigender Größe oder Last sowie automatischer Last- und Datenausgleich zwischen Knoten.

Schließlich Es sollte beachtet werden, dass YDB in Yandex-Projekten verwendet wird. Der Code ist in C/C++ geschrieben und wird unter der Apache 2.0-Lizenz vertrieben, Sie können den Quellcode sowie weitere Details darüber sehen im folgenden link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.