Canonical annonce la version 1.0 de Dqlite, une bibliothèque C pour SQL

Canonique

Dans la dernière semaine Canonical a annoncé la sortie d'une version majeure du projet Dqlite 1.0, vous développez un moteur SQL Conforme à SQLite intégré qui prend en charge la réplication des données, la reprise après sinistre automatique et la tolérance aux pannes en couvrant plusieurs nœuds.

Dqlite est une bibliothèque C Il implémente un moteur de base de données répliqué et SQL avec une haute disponibilité et un basculement automatique. L'acronyme "dqlite" signifie "Distributed SQLite", ce qui signifie que dqlite étend SQLite avec un protocole réseau qui peut connecter plusieurs instances de votre application et les faire agir comme un cluster hautement disponible, sans dépendance aux bases de données externes.

Comme mentionné le SGBD est implémenté sous la forme d'une bibliothèque C attachée aux applications et est distribué sous la licence Apache 2.0 (le SQLite original est fourni dans le domaine public). La bibliothèque est un plugin basé sur du code SQLite existant, qui ajoute la prise en charge du protocole réseau pour lier plusieurs instances de l'application s'exécutant sur différents hôtes.

Une application construite avec Dqlite peut fonctionner comme un cluster de basculement par erreur autonome, indépendant des SGBD externes.

Dans la pratique, Canonical utilise Dqlite dans le système de gestion de conteneurs LXD. Parmi les domaines d'application de la bibliothèque, la création de périphériques et de processeurs Internet des objets tolérants aux pannes dans les systèmes Edge computing est également mentionnée.

Pour assurer la cohérence de la réplication des données, une méthode de consensus basée sur l'algorithme Raft est utilisée, qui est utilisée dans des projets tels que etcd, RethinkDB, CockroachDB et OpenDaylight. Dqlite utilise sa propre implémentation asynchrone C-raft, écrite en C.

Pour multiplexer le traitement des connexions et organiser le lancement des coroutines, les bibliothèques préparées libuv et libco sont utilisées.

Par rapport à un projet rqlite similaire, Dqlite fournit une prise en charge complète des transactions, il peut communiquer avec n'importe quel projet C, vous permet d'utiliser la fonction time () et utilise la réplication basée sur les trames au lieu de la réplication basée sur la traduction d'expression SQL.

Parmi les fonctionnalités qui peuvent être mises en évidence dans Dqlite sont les suivantes:

  • Effectuer toutes les opérations de disque et de réseau en mode asynchrone
  • La présence d'un ensemble de tests pour confirmer l'exactitude des données
  • Faible consommation de mémoire et échange de données efficace sur le réseau
  • Stockage sur disque permanent de la base de données et journal des transactions (avec capacité de mise en cache en mémoire)
  • Récupération rapide après des échecs
  • Client CLI stable en langage Go, qui peut être utilisé pour initialiser la base de données, configurer la réplication et connecter / déconnecter les nœuds
  • Prise en charge des architectures ARM, X86, POWER et IBM Z
  • L'implémentation de l'algorithme Raft est optimisée pour minimiser la latence des transactions.
  • Implémentation asynchrone à thread unique utilisant libuv comme boucle d'événements.
  • Protocole filaire personnalisé optimisé pour les primitives et les types de données SQLite.
  • Réplication des données basée sur l'algorithme Raft et son implémentation efficace dans C-raft.

Comment installer Dqlite sur Ubuntu et ses dérivés?

Canonical fournit des informations sur la façon dont vous pouvez créer un client pour l'interaction avec Dqlite, vous pouvez consulter ceci dans le lien suivant.

Quant à l'installation de la bibliothèque sur le système, Cela peut être installé de deux manières pour ceux qui sont des utilisateurs d'Ubuntu ou tout autre dérivé de celui-ci. Canonical fournit un PPA d'où il peut être obtenu de manière assez simple.

Ce PPA peut être ajouté à partir d'un terminal et y exécuter les commandes suivantes:

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

L'autre méthode pour installer cette bibliothèque consiste à compiler de ceci sur le système, il s'agit donc d'une méthode plus générale pour Ubuntu et les autres distributions Linux.

Pour ce faire, il leur suffit d'ouvrir un terminal et d'exécuter les commandes suivantes:

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 ..

Une fois toutes les bibliothèques nécessaires installées, pour construire la bibliothèque partagée dqlite, vous pouvez exécuter:

autoreconf -i
./configure
make
sudo make install

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.