Dqlite 1.0, une version distribuée de SQLite de Canonical, est disponible

Compagnie canonique опубликовала sortie de projet importante Dqlite 1.0 (Distributed SQLite), qui développe un moteur SQL intégré compatible SQLite qui prend en charge la réplication des données, la récupération automatique en cas de panne et la tolérance aux pannes en répartissant les gestionnaires sur plusieurs nœuds. Le SGBD est implémenté sous la forme d'une bibliothèque C attachée aux applications et distribué par sous licence Apache 2.0 (le SQLite original est fourni dans le domaine public). Liaisons linguistiques disponibles Go.

La bibliothèque est un module complémentaire à la base de code SQLite existante qui ajoute la prise en charge du protocole réseau pour interconnecter plusieurs instances d'une application exécutée sur différents hôtes. Une application compilée avec Dqlite peut fonctionner comme un cluster autosuffisant et tolérant aux pannes, indépendant des SGBD externes. En pratique, Dqlite est utilisé par Canonical dans son système de gestion de conteneurs LXD. Parmi les domaines d'application de la bibliothèque, la création d'appareils et de processeurs Internet des objets tolérants aux pannes dans les systèmes est également mentionnée.
Edge- calculs.

Pour garantir la cohérence de la réplication des données, une méthode de consensus basée sur un algorithme est utilisée Raft, qui est utilisé dans des projets tels que etcd, RethinkDB, CockroachDB et OpenDaylight. Dqlite utilise sa propre implémentation asynchrone Artisanat, écrit en langage C. Des bibliothèques prêtes à l'emploi sont utilisées pour multiplexer le traitement des connexions et organiser le lancement des coroutines libuv и bibliothèque.

Par rapport à un projet similaire rqliteDqlite fournit un support transactionnel complet, peut communiquer avec n'importe quel projet C, permet l'utilisation de la fonction time() et utilise la réplication basée sur les trames au lieu de la réplication basée sur la traduction SQL.

Caractéristiques de Dqlite :

  • Effectuer toutes les opérations sur disque et réseau de manière asynchrone ;
  • Disponibilité 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 permanent de la base de données et du journal des transactions sur disque (avec possibilité de mise en cache en mémoire) ;
  • Récupération rapide après les pannes ;
  • 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 ;
  • Prend en charge les architectures ARM, X86, POWER et IBM Z ;
  • La mise en œuvre de l'algorithme Raft est optimisée pour minimiser les retards lors de la validation des transactions.

Source: opennet.ru

Ajouter un commentaire