Dqlite 1.0 verfĂŒgbar, die verteilte Variante von SQLite von Canonical

Das Unternehmen Canonical veröffentlicht bedeutende Veröffentlichung des Projekts Dqlite 1.0 (Distributed SQLite), das einen mit SQLite kompatiblen eingebetteten SQL-Motor entwickelt, der Datenreplikation, automatischen Wiederherstellung nach AusfĂ€llen und Ausfallsicherheit durch die Verteilung von Handlern auf mehrere Knoten unterstĂŒtzt. Die Datenbank wird als an Anwendungen angebundene C-Bibliothek implementiert und wird verbreitet steht unter der Lizenz Apache 2.0 (das ursprĂŒngliche SQLite wird als öffentliches Eigentum bereitgestellt). Es sind Bindings fĂŒr die Sprache verfĂŒgbar Go.

Die Bibliothek ist eine Erweiterung der bestehenden SQLite-Codebasis, die die UnterstĂŒtzung eines Netzwerkprotokolls hinzufĂŒgt, um mehrere Instanzen von Anwendungen, die auf verschiedenen Hosts ausgefĂŒhrt werden, miteinander zu verbinden. Eine mit Dqlite gebaute Anwendung kann als autarkes, ausfallsicheres Cluster fungieren, das nicht von externen Datenbanken abhĂ€ngt. In der Praxis wird Dqlite von Canonical im Container-Management-System verwendet LXD. Zu den Anwendungsbereichen der Bibliothek gehört auch die Erstellung von ausfallsicheren Internet-of-Things-GerĂ€ten und -Verarbeitungen in Systemen
Edge-Berechnungen.

Um die Konsistenz bei der Datenreplikation zu gewĂ€hrleisten, wird eine Konsensfindungsmethode auf Basis des Algorithmus angewendet Raft, die in Projekten wie etcd, RethinkDB, CockroachDB und OpenDaylight verwendet wird. In Dqlite wird eine eigene asynchrone Implementierung angewendet C-raft, geschrieben in C. FĂŒr die Multiplexierung der Verbindungsbehandlung und die Organisation des Starts von Koroutinen werden fertige Bibliotheken verwendet 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 nutzt eine auf Frames basierende Replikation anstelle einer auf SQL-AusdrĂŒcken basierenden Replikation.

Funktionen von Dqlite:

  • AusfĂŒhrung aller Disk- und Netzwerkoperationen im asynchronen Modus;
  • VerfĂŒgbarkeit eines Testsets zur Validierung der Datenkorrektheit;
  • Geringer Speicherverbrauch und effizienter Datenaustausch im Netzwerk;
  • Dauerhafte Speicherung der Datenbank und des Transaktionsprotokolls (mit der Möglichkeit der Speichercache);
  • Schnelle Wiederherstellung nach AusfĂ€llen;
  • Stabiler CLI-Client in Go, der zur Initialisierung der Datenbank, zur Konfiguration der Replikation und zum An- und Abkoppeln von Knoten verwendet werden kann;
  • UnterstĂŒtzung von Architekturen ARM, X86, POWER und IBM Z;
  • Die Umsetzung des Raft-Algorithmus wurde optimiert, um Verzögerungen bei der BestĂ€tigung von Transaktionen zu minimieren.

Quelle: opennet.ru

60GB SSD 8Gb DDR4