rqlite, een uitstekend gedistribueerd en lichtgewicht relationeel DBMS

Si u zoekt een gedistribueerd DBMS die SQLite als opslagengine gebruikt, laat me je dat vertellen rqlite is degene voor jou, omdat hiermee het werk van een cluster kan worden georganiseerd op basis van gesynchroniseerde opslag.

Van de rqlite-functies, gemak van installatie, implementatie en onderhoud wordt benadrukt van gedistribueerde opslag fouttolerant, wat enigszins lijkt op etcd en Consul, maar het gebruikt een relationeel gegevensmodel in plaats van een sleutel / waarde-indeling.

Over rqlite

Het Raft-consensusalgoritme wordt gebruikt om alle knooppunten gesynchroniseerd te houden. Rqlite gebruik originele SQLite-bibliotheek en go-sqlite3-stuurprogramma, daarnaast voert het een laag uit die klantverzoeken verwerkt, zichzelf repliceert in andere knooppunten en de bereikte consensus over de keuze van het hoofdknooppunt bewaakt.

Wijzigingen in de database kunnen alleen worden aangebracht door het knooppunt dat als leider is geselecteerd, maar de verbindingen met schrijfbewerkingen kunnen worden omgeleid naar andere knooppunten in het cluster, die het adres van de leider zullen retourneren om het verzoek te herhalen (in de volgende versie beloven ze om automatisch doorsturen van de oproep naar de leider toe te voegen).

De nadruk ligt op fouttolerantie, dus de DBMS schaal alleen in leesbewerkingen, en schrijfbewerkingen zijn de bottleneck. Het is mogelijk om een ​​rqlite-cluster vanaf een enkel knooppunt te draaien en een dergelijke oplossing kan worden gebruikt om toegang tot SQLite via HTTP te bieden zonder fouttolerantie.

SQLite-gegevens in elk knooppunt worden ze niet in een bestand opgeslagen, maar in het geheugen. Op laagniveau wordt bij de implementatie van het Raft-protocol een registratie bijgehouden van alle SQLite-commando's die leiden tot een wijziging in de database.

Deze record wordt gebruikt voor replicatie (replicatie op het herhaalniveau van de query naar andere knooppunten), bij het starten van een nieuw knooppunt of om te herstellen van een verlies van connectiviteit.

Om de omvang van het record te verkleinen, wordt automatische verpakking gebruikt, die begint na een bepaald aantal wijzigingen en leidt tot de bevestiging van een snapshot, waartegen een nieuw record begint (de status van de database in het geheugen is identiek aan snapshot + geaccumuleerde wijzigingslogboek).

Van de rqlite-functies:

  • Eenvoudige clusterimplementatie, zonder dat een aparte SQLite-installatie nodig is.
  • Mogelijkheid om snel gerepliceerde SQL-opslag te verkrijgen.
  • Klaar voor gebruik in productieprojecten.
  • Beschikbaarheid van HTTP (S) API, waarmee gegevens in batchmodus kunnen worden bijgewerkt en het leiderknooppunt van het cluster kan worden bepaald. Er is ook voorzien in een opdrachtregelinterface en clientbibliotheken voor verschillende programmeertalen.
  • De aanwezigheid van een service om andere knooppunten te definiëren waarmee u dynamisch clusters kunt maken.
  • Ondersteuning voor encryptie van gegevensuitwisseling tussen knooppunten.
  • De mogelijkheid om het niveau van controle op relevantie en consistentie van gegevens tijdens het lezen aan te passen.
  • Optionele mogelijkheid om alleen-lezen knooppunten te verbinden die niet deelnemen aan consensusbepaling en worden gebruikt om de schaalbaarheid van het cluster voor leesbewerkingen te vergroten.
  • Ondersteuning voor de oorspronkelijke vorm van transacties op basis van het combineren van opdrachten in één verzoek (transacties op basis van BEGIN, COMMIT, ROLLBACK, SAVEPOINT en RELEASE worden niet ondersteund).

Over rqlite 6.0

De nieuwe versie introduceert belangrijke architecturale veranderingen om de betrouwbaarheid van clusters te verbeteren door het proces van het doorsturen van lees- en schrijfverzoeken naar de juiste clusterknooppunten te verbeteren.

Rqlite-knooppunten nu kan meerdere logische verbindingen multiplexen tussen hen met behulp van de TCP-verbindingen die tot stand zijn gebracht tussen de knooppunten door het Raft-protocol. Als het verzoek de autoriteit van het leiderknooppunt vereist, maar naar het secundaire knooppunt wordt verzonden, kan het secundaire knooppunt het adres van de leider bepalen en naar de klant verzenden, zonder de Raft-consensusberekening uit te voeren.

De wijziging verwijderde ook de afzonderlijke component voor het synchroniseren van metagegevens en verwijderde Raft's afzonderlijke verwerking van status en metagegevens.

Secundaire knooppunten sturen nu alleen verzoeken naar het hoofdknooppunt wanneer dat nodig is, wanneer het nodig is om het adres van het hoofdknooppunt te achterhalen. De API biedt de mogelijkheid om informatie te verkrijgen over de status van andere knooppunten in het cluster. Sysdump-opdracht toegevoegd aan CLI.

Eindelijk als u er meer over wilt weten of raadpleeg de installatie-instructies en gebruikershandleiding, u kunt het doen via de onderstaande link.


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.