rqlite, un SGBD relațional excelent distribuit și ușor

Si sunteți în căutarea unui SGBD distribuit care folosește SQLite ca motor de stocare, permiteți-mi să vă spun asta rqlite este cel pentru tine, deoarece permite organizarea muncii unui cluster din stocări sincronizate între ele.

Din caracteristicile rqlite, se evidențiază ușurința instalării, implementării și întreținerii de stocare distribuită tolerant la erori, care este oarecum similar cu etcd și Consul, dar folosește un model de date relațional în locul unui format cheie / valoare.

Despre rqlite

Algoritmul consens Raft este utilizat pentru a menține toate nodurile sincronizate. Rqlite utilizați biblioteca SQLite originală și driverul go-sqlite3, în plus față de care execută un strat care procesează cererile clientului, se replică în alte noduri și monitorizează consensul la alegerea nodului principal.

Modificările aduse bazei de date pot fi făcute numai de nodul selectat ca lider, dar conexiunile cu operații de scriere pot fi direcționate către alte noduri din cluster, care vor returna adresa liderului pentru a repeta cererea (în următoarea versiune, promit să adauge redirecționarea automată a apelului către lider).

Accentul principal se pune pe toleranța la erori, deci SGBD scala doar în operațiile de citire, și operațiile de scriere sunt blocajul. Este posibil să rulați un cluster rqlite dintr-un singur nod și o astfel de soluție poate fi utilizată pentru a oferi acces la SQLite prin HTTP fără a oferi toleranță la erori.

Date SQLite în fiecare nod nu sunt stocate într-un fișier, ci în memorie. La nivelul stratului cu implementarea protocolului Raft, se ține o evidență a tuturor comenzilor SQLite care duc la o modificare a bazei de date.

Această înregistrare este utilizată pentru replicare (replicarea la nivel de interogare a interogării către alte noduri), la pornirea unui nou nod sau pentru recuperarea unei pierderi de conectivitate.

Pentru a reduce dimensiunea înregistrării, se folosește ambalarea automată, care începe după un număr specificat de modificări și duce la confirmarea unui instantaneu, față de care începe o nouă înregistrare (starea bazei de date din memorie este identică cu instantaneul + jurnalul modificărilor acumulate).

Din caracteristicile rqlite:

  • Ușurința implementării clusterului, fără a fi nevoie de o instalare SQLite separată.
  • Abilitatea de a obține rapid stocare SQL replicată.
  • Gata de utilizare în proiecte de producție.
  • Disponibilitatea API-ului HTTP (S), care permite actualizarea datelor în modul batch și determinarea nodului principal al clusterului. De asemenea, sunt furnizate o interfață de linie de comandă și biblioteci client pentru diferite limbaje de programare.
  • Prezența unui serviciu pentru a defini alte noduri care vă permite să creați dinamic clustere.
  • Suport pentru criptarea schimbului de date între noduri.
  • Capacitatea de a personaliza nivelul de verificare a relevanței și consistenței datelor la citire.
  • Capacitate opțională de a conecta noduri de numai citire care nu participă la determinarea consensului și sunt utilizate pentru a crește scalabilitatea clusterului pentru operațiile de citire.
  • Suport pentru forma nativă a tranzacțiilor bazate pe combinarea comenzilor într-o singură cerere (tranzacțiile bazate pe BEGIN, COMMIT, ROLLBACK, SAVEPOINT și RELEASE nu sunt acceptate).

Despre rqlite 6.0

Noua versiune introduce schimbări arhitecturale semnificative care vizează îmbunătățirea fiabilității clusterului prin îmbunătățirea procesului de direcționare a cererilor de citire și scriere către nodurile de cluster corecte.

Nodurile Rqlite acum poate multiplexa conexiuni logice multiple între ele folosind conexiunile TCP stabilite între noduri prin protocolul Raft. Dacă solicitarea necesită autoritatea nodului lider, dar este trimisă nodului secundar, nodul secundar poate determina adresa liderului și o poate transmite clientului, fără a efectua calculul consensului Raft.

Modificarea a eliminat, de asemenea, componenta separată pentru sincronizarea metadatelor și a eliminat gestionarea separată a stării și metadatelor de către Raft.

Nodurile secundare trimit acum cereri către nodul principal numai atunci când este necesar, când este necesar să aflăm adresa nodului principal. API oferă posibilitatea de a obține informații despre starea altor noduri din cluster. Comanda Sysdump a fost adăugată la CLI.

În cele din urmă dacă sunteți interesat să aflați mai multe despre asta sau consultați instrucțiunile de instalare și manualul de utilizare, puteți face acest lucru din linkul de mai jos.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.