Dqlite 1.0 ist verfügbar, eine verteilte Version von SQLite von Canonical.

Das Unternehmen Canonical die Bedeutender Projektrelease Dqlite 1.0 (Distributed SQLite), ein SQL-Engine, die mit SQLite kompatibel ist und Datensynchronisation, automatische Wiederherstellung nach Ausfällen sowie Fehlertoleranz durch die Verteilung von Bearbeitern auf mehrere Knoten unterstützt. Die Datenbank wird in Form einer an C-Anwendungen angehängten Bibliothek realisiert und wird unter der GPLv3-Lizenz bereitgestellt. unter der Apache 2.0-Lizenz angeboten (das ursprüngliche SQLite wird als Public Domain bereitgestellt). Bindings für die Programmiersprache sind verfügbar. Go.

Die Bibliothek ist eine Erweiterung der bestehenden SQLite-Codebasis, die Unterstützung für ein Netzwerkprotokoll hinzufügt, um mehrere Instanzen einer Anwendung zu verbinden, die auf verschiedenen Hosts ausgeführt werden. Eine mit Dqlite gebaute Anwendung kann als eigenständiger, fehlertoleranter Cluster funktionieren, der nicht von externen Datenbanken abhängt. In der Praxis wird Dqlite von Canonical im Container-Management-System verwendet. LXDZu den Anwendungsmöglichkeiten der Bibliothek gehören auch die Erstellung von fehlertoleranten Internet-of-Things-Geräten und -Handlern in Systemen
Edge-Computing.

Zur Gewährleistung der Konsistenz bei der Datenreplikation wird ein Konsensverfahren auf Basis eines Algorithmus angewendet Raft, der in Projekten wie etcd, RethinkDB, CockroachDB und OpenDaylight eingesetzt wird. In Dqlite kommt eine eigene asynchrone Implementierung zum Einsatz C-raft, die in der Programmiersprache C geschrieben ist. Für das Multiplexen der Verbindungsbearbeitung und die Organisation des Starts von Koroutinen werden vorhandene Bibliotheken genutzt libuv und libco.

Im Vergleich zu einem ähnlichen Projekt rqlite, bietet Dqlite vollständige Transaktionsunterstützung, kann sich mit beliebigen Projekten in C verbinden, erlaubt die Verwendung der Funktion time() und verwendet frame-basierte Replikation anstelle von SQL-Statements für die Replikation.

Eigenschaften von Dqlite:

  • Durchführung aller Disk- und Netzwerkoperationen im asynchronen Modus;
  • Verfügbarkeit eines Testsets zur Validierung der Datenintegrität;
  • Niedriger Speicherverbrauch und effiziente Datenübertragung über das Netzwerk;
  • Permanente Speicherung der Datenbank und des Transaktionsprotokolls auf der Festplatte (mit Möglichkeit zur Speicherung im Speicher);
  • Schnelle Wiederherstellung nach Ausfällen;
  • Stabiler CLI-Client in Go, der zur Initialisierung von Datenbanken, zur Konfiguration von Replikation und zum Verbinden/Trennen von Knoten verwendet werden kann;
  • Unterstützung für die Architekturen ARM, X86, POWER und IBM Z;
  • Die Implementierung des Raft-Algorithmus ist optimiert, um Latenzen bei der Bestätigung von Transaktionen zu minimieren.

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