Dqlite 1.0, een gedistribueerde versie van SQLite van Canonical, is beschikbaar

Canoniek опубликовала aanzienlijke projectrelease Dqlite 1.0 (Distributed SQLite), dat een SQLite-compatibele ingebedde SQL-engine ontwikkelt die gegevensreplicatie, automatisch herstel na fouten en fouttolerantie ondersteunt door handlers over meerdere knooppunten te distribueren. Het DBMS wordt geïmplementeerd in de vorm van een C-bibliotheek die is gekoppeld aan applicaties en gedistribueerd door onder de Apache 2.0-licentie (de originele SQLite wordt geleverd in het publieke domein). Taalbindingen beschikbaar Go.

De bibliotheek is een add-on op de bestaande SQLite-codebase die netwerkprotocolondersteuning toevoegt voor het onderling verbinden van meerdere exemplaren van een applicatie die op verschillende hosts draait. Een applicatie die is gecompileerd met Dqlite kan functioneren als een zelfvoorzienend fouttolerant cluster, onafhankelijk van externe DBMS'en. In de praktijk wordt Dqlite door Canonical gebruikt in haar containermanagementsysteem LXD. Onder de toepassingsgebieden van de bibliotheek wordt ook het creëren van fouttolerante Internet of Things-apparaten en -processors in systemen genoemd
rand- berekeningen.

Om consistentie in de gegevensreplicatie te garanderen, wordt een op algoritmen gebaseerde consensusmethode gebruikt Vlot, dat wordt gebruikt in projecten zoals etcd, RethinkDB, CockroachDB en OpenDaylight. Dqlite gebruikt zijn eigen asynchrone implementatie Ambacht, geschreven in C-taal. Kant-en-klare bibliotheken worden gebruikt om de verbindingsverwerking te multiplexen en de lancering van coroutines te organiseren libuv и libco.

Vergeleken met een soortgelijk project rqlietDqlite biedt volledige transactionele ondersteuning, kan communiceren met elk C-project, maakt het gebruik van de functie time() mogelijk en maakt gebruik van op frames gebaseerde replicatie in plaats van op SQL-vertalingen gebaseerde replicatie.

Kenmerken van Dqlite:

  • Voer alle schijf- en netwerkbewerkingen asynchroon uit;
  • Beschikbaarheid van een testset om de juistheid van de gegevens te bevestigen;
  • Laag geheugenverbruik en efficiënte gegevensuitwisseling via het netwerk;
  • Permanente opslag van de database en transactieaanmelding op schijf (met de mogelijkheid tot caching in het geheugen);
  • Snel herstel na storingen;
  • Stabiele CLI-client in Go-taal, die kan worden gebruikt om de database te initialiseren, replicatie te configureren en knooppunten te verbinden/verbreken;
  • Ondersteunt ARM-, X86-, POWER- en IBM Z-architecturen;
  • De implementatie van het Raft-algoritme is geoptimaliseerd om vertragingen bij het uitvoeren van transacties te minimaliseren.

Bron: opennet.ru

Voeg een reactie