rqlite, en utmärkt lätt distribuerad relationell DBMS

Si du letar efter en distribuerad DBMS som använder SQLite som en lagringsmotor, låt mig berätta det rqlite är det för dig, eftersom det gör det möjligt att organisera arbetet i ett kluster från lager som är synkroniserade med varandra.

Från rqlite-funktionerna, enkel installation, implementering och underhåll är markerad distribuerad lagring fel tolerant, vilket är något som liknar etcd och konsul, men den använder en relationsdatamodell istället för ett nyckel / värde-format.

Om rqlite

Raft-konsensusalgoritmen används för att hålla alla noder synkroniserade. Rqlite använd originalt SQLite-bibliotek och go-sqlite3-drivrutin, utöver vilket det kör ett lager som behandlar klientförfrågningar, replikerar sig själv i andra noder och övervakar det konsensus som uppnåtts om valet av huvudnoden.

Ändringar i databasen kan endast göras av den nod som valts som ledare, men anslutningarna med skrivoperationer kan riktas till andra noder i klustret, som kommer att returnera ledarens adress för att upprepa begäran (i nästa version lovar de att lägga till automatisk vidarekoppling av samtalet till ledaren).

Huvudfokus ligger på feltolerans, så DBMS skala endast i läsoperationer, och skrivoperationer är flaskhalsen. Det är möjligt att köra ett rqlite-kluster från en enda nod och en sådan lösning kan användas för att ge åtkomst till SQLite via HTTP utan att ge feltolerans.

SQLite-data i varje nod lagras de inte i en fil utan i minnet. På lagernivå med implementeringen av Raft-protokollet sparas alla SQLite-kommandon som leder till en förändring i databasen.

Den här posten används för replikering (replikering på frågan om uppspelningsnivå till andra noder), när du startar en ny nod eller för att återhämta sig från en förlust av anslutning.

För att minska storleken på posten används automatisk förpackning, som börjar efter ett visst antal ändringar och leder till bekräftelse av en ögonblicksbild, mot vilken en ny post börjar (status för databasen i minnet är identisk med ögonblicksbild + ackumulerad ändringslogg).

Från rqlite-funktionerna:

  • Enkel distribution av kluster utan behov av en separat SQLite-installation.
  • Möjlighet att snabbt få replikerad SQL-lagring.
  • Redo att användas i produktionsprojekt.
  • Tillgänglighet för HTTP (S) API, vilket möjliggör uppdatering av data i batch-läge och bestämning av ledarnoden för klustret. Ett kommandoradsgränssnitt och klientbibliotek för olika programmeringsspråk tillhandahålls också.
  • Närvaron av en tjänst för att definiera andra noder som låter dig dynamiskt skapa kluster.
  • Stöd för kryptering av datautbyte mellan noder.
  • Möjligheten att anpassa nivån för kontroll av relevans och konsistens av data vid läsning.
  • Valfri förmåga att ansluta skrivskyddade noder som inte deltar i konsensusbestämning och används för att öka skalbarheten i klustret för läsoperationer.
  • Stöd för den ursprungliga formen av transaktioner baserade på att kombinera kommandon i en enda begäran (transaktioner baserade på BEGIN, COMMIT, ROLLBACK, SAVEPOINT och RELEASE stöds inte).

Om rqlite 6.0

Den nya versionen introducerar betydande arkitektoniska förändringar som syftar till att förbättra klustertillförlitligheten genom att förbättra processen för att rikta läs- och skrivförfrågningar till rätt klusternoder.

Rqlite noder nu kan multiplexera flera logiska anslutningar mellan dem med TCP-anslutningar som upprättats mellan noder genom Raft-protokollet. Om begäran kräver ledarnodens behörighet men skickas till den sekundära noden kan den sekundära noden bestämma ledarens adress och överföra den till klienten utan att utföra Raft-konsensusberäkningen.

Ändringen tog också bort den separata komponenten för att synkronisera metadata och tog bort Rafts separata hantering av status och metadata.

Sekundära noder skickar nu förfrågningar till leadnoden endast när det är nödvändigt, när det är nödvändigt att ta reda på adressen till leadnoden. API ger möjlighet att få information om status för andra noder i klustret. Sysdump-kommandot har lagts till i CLI.

Slutligen om du är intresserad av att veta mer om det eller se installationsanvisningarna och användarhandboken så kan du göra det från länken nedan.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.