Canonical kündigt Version 1.0 von Dqlite an, einer C-Bibliothek für SQL

Kanonisch

In der vergangenen Woche Canonical kündigte die Veröffentlichung einer Hauptversion des Dqlite 1.0-Projekts an, Sie entwickeln eine SQL-Engine Integrierte SQLite-Kompatibilität, die Datenreplikation, automatische Notfallwiederherstellung und Fehlertoleranz durch mehrere Knoten unterstützt.

Dqlite ist eine C-Bibliothek Es implementiert eine replizierte und SQL-Datenbank-Engine mit hoher Verfügbarkeit und automatischem Failover. Das Akronym "dqlite" steht für "Distributed SQLite", Dies bedeutet, dass dqlite SQLite um ein Netzwerkprotokoll erweitert, das mehrere Instanzen Ihrer Anwendung verbinden und sie als hochverfügbaren Cluster ohne Abhängigkeit von externen Datenbanken fungieren lassen kann.

Wie erwähnt Das DBMS wird in Form einer C-Bibliothek implementiert, die an Anwendungen angehängt ist und wird unter der Apache 2.0-Lizenz vertrieben (die ursprüngliche SQLite wird gemeinfrei bereitgestellt). Die Bibliothek ist ein Plugin auf Basis des vorhandenen SQLite-Codes. Dadurch wird die Netzwerkprotokollunterstützung hinzugefügt, um mehrere Instanzen der Anwendung zu verknüpfen, die auf verschiedenen Hosts ausgeführt werden.

Eine mit Dqlite erstellte Anwendung kann als Failovercluster fungieren durch autonomen Fehler, unabhängig von externem DBMS.

In der Praxis, Canonical verwendet Dqlite im LXD-Containerverwaltungssystem. In den Anwendungsbereichen der Bibliothek wird auch die Schaffung fehlertoleranter Internet-of-Things-Geräte und -Prozessoren in Edge-Computersystemen erwähnt.

Um die Konsistenz bei der Datenreplikation sicherzustellen, wird eine Konsensmethode verwendet, die auf dem Raft-Algorithmus basiert und in Projekten wie etcd, RethinkDB, CockroachDB und OpenDaylight verwendet wird. Dqlite verwendet eine eigene asynchrone C-Raft-Implementierung, die in C geschrieben ist.

Um die Verbindungsverarbeitung zu multiplexen und den Start von Coroutinen zu organisieren, werden die vorbereiteten Bibliotheken libuv und libco verwendet.

Im Vergleich zu einem ähnlichen rqlite-Projekt bietet Dqlite vollständige TransaktionsunterstützungEs kann mit jedem C-Projekt kommunizieren, ermöglicht die Verwendung der Funktion time () und verwendet die rahmenbasierte Replikation anstelle der auf der Übersetzung von SQL-Ausdrücken basierenden Replikation.

Folgende Funktionen können in Dqlite hervorgehoben werden:

  • Führen Sie alle Festplatten- und Netzwerkvorgänge im asynchronen Modus aus
  • Das Vorhandensein einer Reihe von Tests zur Bestätigung der Richtigkeit der Daten
  • Geringer Speicherverbrauch und effizienter Datenaustausch über das Netzwerk
  • Permanenter Speicher für Datenbankdatenträger und Transaktionsprotokoll (mit In-Memory-Caching-Funktion)
  • Schnelle Wiederherstellung nach Fehlern
  • Stabiler CLI-Client in der Sprache Go, mit dem die Datenbank initialisiert, die Replikation konfiguriert und Knoten verbunden / getrennt werden können
  • Unterstützung für ARM-, X86-, POWER- und IBM Z-Architekturen
  • Die Implementierung des Raft-Algorithmus ist optimiert, um die Transaktionslatenz zu minimieren.
  • Asynchrone Single-Threaded-Implementierung mit libuv als Ereignisschleife.
  • Benutzerdefiniertes Drahtprotokoll, optimiert für SQLite-Grundelemente und Datentypen.
  • Datenreplikation basierend auf dem Raft-Algorithmus und seiner effizienten Implementierung in C-Raft.

Wie installiere ich Dqlite unter Ubuntu und Derivaten?

Canonical bietet Informationen dazu, wie Sie einen Client für die Interaktion mit Dqlite erstellen können. Sie können dies konsultieren im folgenden Link.

Nun zur Installation der Bibliothek auf dem System: Dies kann auf zwei Arten für Ubuntu-Benutzer installiert werden oder irgendein anderes Derivat davon. Canonical bietet eine PPA von wo es auf ziemlich einfache Weise erhalten werden kann.

Diese PPA kann von einem Terminal aus hinzugefügt werden und die folgenden Befehle ausführen:

sudo add-apt-repository ppa:dqlite/v1
sudo apt-get update
sudo apt-get install libdqlite-dev

Die andere Methode zum Installieren dieser Bibliothek ist das Kompilieren Dies ist also eine allgemeinere Methode für Ubuntu und andere Linux-Distributionen.

Dazu müssen sie nur ein Terminal öffnen und die folgenden Befehle ausführen:

git clone --depth 100 https://github.com/canonical/sqlite.git
cd sqlite
./configure --enable-replication
make
sudo make install
cd ..
git clone https://github.com/canonical/libco.git
cd libco
make
sudo make install
cd ..
git clone https://github.com/canonical/raft.git
cd raft
autoreconf -i
./configure
make
sudo make install
cd ..

Sobald alle erforderlichen Bibliotheken installiert sind, können Sie Folgendes ausführen, um die gemeinsam genutzte dqlite-Bibliothek zu erstellen:

autoreconf -i
./configure
make
sudo make install

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.