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

Canonical heeft gepubliceerd een belangrijke release van het project Dqlite 1.0 (Distributed SQLite), ontwikkelt een compatibele embedded SQL-engine met SQLite, die databasereplicatie, automatische herstel na storingen en failover-mogelijkheden via gedistribueerde handlers op meerdere knooppunten ondersteunt. De DBMS is geĆÆmplementeerd in de vorm van een C-bibliotheek die aan toepassingen kan worden gekoppeld en wordt verspreid is beschikbaar onder de Apache 2.0-licentie (de originele SQLite wordt geleverd als openbare doman). Bindings voor de taal zijn beschikbaar Go.

De bibliotheek is een uitbreiding op de bestaande SQLite-codebasis en voegt ondersteuning toe voor netwerken om meerdere exemplaren van de toepassing, die op verschillende hosts draaien, aan elkaar te koppelen. Een met Dqlite-gecompileerde toepassing kan functioneren als een zelfstandige, fouttolerante cluster, onafhankelijk van externe DBMS. In de praktijk wordt Dqlite gebruikt door Canonical in het containerbeheersysteem LXD. Tot de toepassingsgebieden van de bibliotheek behoren ook de ontwikkeling van fouttolerante Internet-of-Things-apparaten en gateways in systemen
Edge-computing.

Om consistentie bij databasereplicatie te waarborgen, wordt een consensusmethode gebruikt op basis van het Raft-algoritme, dat wordt toegepast in projecten zoals etcd, RethinkDB, CockroachDB en OpenDaylight. In Dqlite wordt een eigen asynchrone implementatie van C-raft, geschreven in de programmeertaal C. Voor het multiplexen van verbindingen en het opzetten van co-routines worden kant-en-klare bibliotheken gebruikt libuv en libco.

In vergelijking met een vergelijkbaar project rqlite, biedt Dqlite volledige ondersteuning voor transacties, kan koppelen aan elk project in de programTaal C, maakt gebruik van de functie time() en past frame-gebaseerde replicatie toe in plaats van replicatie op basis van SQL-uitdrukkingen.

Kenmerken van Dqlite:

  • Uitvoering van alle schijf- en netwerkoperaties in asynchrone modus;
  • Beschikbaarheid van een testset om de gegevensintegriteit te bevestigen;
  • Laag geheugenverbruik en efficiĆ«nte gegevensoverdracht via het netwerk;
  • Duurzaam opslaan van de database en logboeken op schijf (met mogelijkheid tot cachen in het geheugen);
  • Snelle herstel na storingen;
  • Stabiele CLI-client in de programmeertaal Go, die kan worden gebruikt voor het initialiseren van de database, het configureren van replicatie en het aansluiten/afkoppelen van knooppunten;
  • Ondersteuning voor architecturen ARM, X86, POWER en IBM Z;
  • De implementatie van het Raft-algoritme is geoptimaliseerd om vertragingen bij het vastleggen van transacties te minimaliseren.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster