Canonical kondigt versie 1.0 van Dqlite aan, een C-bibliotheek voor SQL

Kanoniek

In de afgelopen week Canonical heeft de release aangekondigd van een hoofdversie van het Dqlite 1.0-project, je ontwikkelt een SQL-engine Ingebouwde SQLite-compatibel die gegevensreplicatie, automatisch noodherstel en fouttolerantie ondersteunt door meerdere knooppunten te omspannen.

Dqlite is een C-bibliotheek Het implementeert een gerepliceerde en SQL-database-engine met hoge beschikbaarheid en automatische failover. De afkorting "dqlite" staat voor "Distributed SQLite", wat betekent dat dqlite SQLite uitbreidt met een netwerkprotocol dat meerdere instanties van uw applicatie kan verbinden en ze kan laten fungeren als een cluster met hoge beschikbaarheid, zonder afhankelijkheid van externe databases.

Zoals genoemd het DBMS wordt geïmplementeerd in de vorm van een C-bibliotheek die aan applicaties is gekoppeld en wordt gedistribueerd onder de Apache 2.0-licentie (de originele SQLite wordt geleverd in het publieke domein). De bibliotheek is een plug-in op basis van bestaande SQLite-code, die ondersteuning voor netwerkprotocollen toevoegt om meerdere instanties van de applicatie die op verschillende hosts worden uitgevoerd, te koppelen.

Een applicatie gebouwd met Dqlite kan functioneren als een failover-cluster door een autonome fout, onafhankelijk van externe DBMS.

In praktijk, Canonical gebruikt Dqlite in het LXD-containerbeheersysteem​ Onder de toepassingsgebieden van de bibliotheek wordt ook het creëren van fouttolerante Internet of Things-apparaten en -processors in Edge-computersystemen genoemd.

Om consistentie in gegevensreplicatie te garanderen, wordt een consensusmethode gebruikt op basis van het Raft-algoritme, die wordt gebruikt in projecten zoals etcd, RethinkDB, CockroachDB en OpenDaylight. Dqlite gebruikt zijn eigen asynchrone C-raft-implementatie, geschreven in C.

Om de verbindingsverwerking te multiplexen en de lancering van coroutines te organiseren, worden de voorbereide bibliotheken libuv en libco gebruikt.

In vergelijking met een vergelijkbaar rqlite-project biedt Dqlite volledige transactieondersteuning, kan het communiceren met elk C-project, kunt u de functie time () gebruiken en op frames gebaseerde replicatie gebruiken in plaats van replicatie op basis van SQL-expressie op vertaling.

Van de functies die in Dqlite kunnen worden benadrukt, zijn de volgende:

  • Voer alle schijf- en netwerkbewerkingen uit in asynchrone modus
  • De aanwezigheid van een reeks tests om de nauwkeurigheid van de gegevens te bevestigen
  • Laag geheugenverbruik en efficiënte gegevensuitwisseling via het netwerk
  • Permanente databaseschijfopslag en transactielogboek (met in-memory caching-mogelijkheid)
  • 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
  • Ondersteuning voor ARM-, X86-, POWER- en IBM Z-architecturen
  • De implementatie van het Raft-algoritme is geoptimaliseerd om transactielatentie te minimaliseren.
  • Asynchrone implementatie met één thread met libuv als een gebeurtenislus.
  • Aangepast draadprotocol geoptimaliseerd voor SQLite-primitieven en gegevenstypen.
  • Gegevensreplicatie op basis van het Raft-algoritme en de efficiënte implementatie ervan in C-raft.

Hoe installeer ik Dqlite op Ubuntu en derivaten?

Canonical geeft informatie over hoe je een klant kunt bouwen voor interactie met Dqlite, deze kun je raadplegen In de volgende link.

Wat betreft het installeren van de bibliotheek op het systeem, Dit kan op twee manieren worden geïnstalleerd voor degenen die Ubuntu-gebruikers zijn of een andere afgeleide ervan. Canonical biedt een PPA vanwaar het op een vrij eenvoudige manier kan worden verkregen.

Deze PPA kan vanaf een terminal worden toegevoegd en de volgende opdrachten erin uitvoeren:

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

De andere methode om deze bibliotheek te installeren is door te compileren hiervan op het systeem, dus dit is een meer algemene methode voor zowel Ubuntu als andere Linux-distributies.

Om dit te doen, hoeven ze alleen een terminal te openen en de volgende opdrachten uit te voeren:

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

Nadat alle benodigde bibliotheken zijn geïnstalleerd om de gedeelde dqlite-bibliotheek te bouwen, kunt u het volgende uitvoeren:

autoreconf -i
./configure
make
sudo make install

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.