Yandex hat den Code der verteilten Datenbank YDB veröffentlicht, die SQL unterstützt.

Das Unternehmen Yandex hat den Quellcode seiner verteilten Datenbank YDB veröffentlicht, die SQL-Dialekte und ACID-Transaktionen unterstützt. Die Datenbank wurde von Grund auf neu entwickelt und fokussiert sich von Beginn an auf Ausfallsicherheit, automatisches Recovery bei Störungen und Skalierbarkeit. Yandex betreibt bereits funktionale YDB-Cluster, die über 10.000 Knoten umfassen, mehrere Hundert Petabyte an Daten speichern und Millionen von verteilten Transaktionen pro Sekunde verarbeiten. YDB wird in verschiedenen Yandex-Projekten eingesetzt, darunter Märkte, Cloud-Dienste, Smart Home, Alice, Metrik und Auto.ru. Der Code ist in den Programmiersprachen C/C++ geschrieben und wird unter der Apache 2.0-Lizenz bereitgestellt. Für einen schnellen Einstieg steht ein vorgefertigter Docker-Container zur Verfügung.

Projektmerkmale:

  • Die Verwendung eines relationalen Datenmodells mit Tabellen. Für Anfragen und die Definition des Datenschemas wird die YQL-Sprache (YDB Query Language) verwendet, ein SQL-Dialekt, der für große verteilte Datenbanken optimiert ist. Bei der Erstellung des Speicherschemas wird eine baumartige Gruppierung von Tabellen unterstützt, die an Verzeichnisse im Dateisystem erinnert. Ein API wird bereitgestellt, um mit Daten im JSON-Format zu arbeiten.
    Yandex hat den Code der verteilten Datenbank YDB veröffentlicht, die SQL unterstützt.
  • Unterstützung des Zugriffs auf Daten durch Abfragescans, die für die Durchführung analytischer Ad-hoc-Abfragen über die Datenbank konzipiert sind. Diese Abfragen werden im Nur-Lese-Modus ausgeführt und geben einen gRPC-Stream zurück.
  • Die Interaktion mit dem DBMS und das Senden von Anfragen erfolgt über die Befehlszeilenoberfläche, die integrierte Web-Oberfläche oder die YDB SDK-Sammlung, die Bibliotheken für die Programmiersprachen C++, C# (.NET), Go, Java, Node.js, PHP und Python bereitstellt.
  • Die Möglichkeit, ausfalltolerante Konfigurationen zu erstellen, die bei einem Ausfall einzelner Festplatten, Nodes, Racks und sogar Rechenzentren weiterhin funktionieren. YDB unterstützt die Bereitstellung und synchrone Replikation in drei Verfügbarkeitszonen bei gleichzeitiger Aufrechterhaltung der Clusterfunktionalität im Falle eines Ausfalls einer der Zonen.
  • Automatische Wiederherstellung nach Fehlern mit minimalen Verzögerungen für Anwendungen sowie die automatische Aufrechterhaltung der festgelegten Redundanz bei der Datenspeicherung.
  • Automatische Erstellung von Indizes über den Primärschlüssel und die Möglichkeit, sekundäre Indizes zu definieren, um den Zugriff auf beliebige Spalten zu optimieren.
  • Horizontale Skalierbarkeit. Mit steigendem Datenvolumen und erhöhter Last kann der Cluster durch das einfache Hinzufügen neuer Knoten erweitert werden. Die Rechen- und Speicherressourcen sind getrennt, was eine unabhängige Erhöhung der Rechenleistung und des Speicherplatzes ermöglicht. Die Datenbank sorgt dafür, dass die Daten und die Last gleichmäßig auf den verfügbaren Hardware-Ressourcen verteilt werden. Es ist möglich, geografisch verteilte Konfigurationen zu implementieren, die mehrere Rechenzentren in verschiedenen Teilen der Welt umfassen.
  • Unterstützung des Modells strenger Konsistenz und ACID-Transaktionen beim Verarbeiten von Anfragen, die mehrere Knoten und Tabellen umfassen. Zur Verbesserung der Leistung kann die Überwachung der Konsistenz selektiv deaktiviert werden.
  • Automatische Datenreplikation, automatisches Partitionieren (Sharding) bei wachsendem Datenvolumen oder Last und automatische Last- sowie Datenbalancierung zwischen den Knoten.
  • Datenspeicherung direkt auf Blockgeräten unter Verwendung der eigenen Komponente PDisk und der Schicht VDisk. Auf VDisk wird DSProxy ausgeführt, das die Verfügbarkeit und die Leistungsmerkmale der Laufwerke analysiert, um sie bei Problemen auszuschließen.
  • Eine flexible Architektur, die die Erstellung verschiedener Dienste über YDB ermöglicht, einschließlich virtueller Blockgeräte und persistenter Warteschlangen. Geeignet für unterschiedliche Lastarten, OLTP und OLAP (analytische Abfragen).
  • Unterstützung für Mehrbenutzer- (Multitenant) und serverlose Konfigurationen. Möglichkeit zur Authentifizierung von Kunden. Benutzer können ihre eigenen virtuellen Cluster und Datenbanken in einer gemeinsamen Infrastruktur unter Berücksichtigung des Ressourcenkonsums basierend auf der Anzahl der Anfragen und der Datengröße erstellen oder bestimmte Rechenressourcen und Speicherplatz mieten/reservieren.
  • Die Möglichkeit, die Lebensdauer von Datensätzen für die automatische Löschung veralteter Daten zu konfigurieren.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster