rqlite, un eccellente DBMS relazionale distribuito e leggero

Si stai cercando un DBMS distribuito che utilizza SQLite come motore di archiviazione, lascia che te lo dica rqlite è quello che fa per te, poiché consente di organizzare il lavoro di un cluster da archivi sincronizzati tra loro.

Dalle caratteristiche di rqlite, viene evidenziata la facilità di installazione, implementazione e manutenzione di memoria distribuita fault tolerant, che è in qualche modo simile a etcd e Consul, ma utilizza un modello di dati relazionale invece di un formato chiave/valore.

Informazioni su rqlite

L'algoritmo di consenso Raft viene utilizzato per mantenere sincronizzati tutti i nodi. Rqlite usa la libreria SQLite originale e il driver go-sqlite3, oltre al quale esegue un layer che elabora le richieste dei client, si replica in altri nodi e monitora il consenso raggiunto sulla scelta del nodo principale.

Le modifiche al database possono essere apportate solo dal nodo selezionato come leader, ma le connessioni con operazioni di scrittura possono essere dirette ad altri nodi del cluster, che restituiranno l'indirizzo del leader per ripetere la richiesta (nella versione successiva, promettono di aggiungere l'inoltro automatico della chiamata al leader).

L'obiettivo principale è la tolleranza ai guasti, quindi il DBMS scala solo nelle operazioni di lettura, e le operazioni di scrittura sono il collo di bottiglia. È possibile eseguire un cluster rqlite da un singolo nodo e tale soluzione può essere utilizzata per fornire accesso a SQLite su HTTP senza fornire tolleranza di errore.

Dati SQLite in ogni nodo non sono memorizzati in un file, ma in memoria. A livello di livello con l'implementazione del protocollo Raft, viene tenuto un registro di tutti i comandi SQLite che portano a una modifica nel database.

Questo record viene utilizzato per la replica (replica a livello di riproduzione della query su altri nodi), all'avvio di un nuovo nodo o per il ripristino da una perdita di connettività.

Per ridurre la dimensione del record viene utilizzato il packaging automatico, che parte dopo un determinato numero di modifiche e porta alla conferma di uno snapshot, a fronte del quale inizia un nuovo record (lo stato del database in memoria è identico allo snapshot + registro modifiche accumulate).

Dalle caratteristiche di rqlite:

  • Facilità di distribuzione del cluster, senza la necessità di un'installazione SQLite separata.
  • Possibilità di ottenere rapidamente storage SQL replicato.
  • Pronto per l'uso in progetti di produzione.
  • Disponibilità dell'API HTTP (S), che consente l'aggiornamento dei dati in modalità batch e la determinazione del nodo leader del cluster. Sono inoltre fornite un'interfaccia a riga di comando e librerie client per vari linguaggi di programmazione.
  • La presenza di un servizio per definire altri nodi che permette di creare dinamicamente dei cluster.
  • Supporto per la crittografia dello scambio di dati tra i nodi.
  • La possibilità di personalizzare il livello di controllo della pertinenza e della coerenza dei dati durante la lettura.
  • Possibilità facoltativa di connettere nodi di sola lettura che non partecipano alla determinazione del consenso e vengono utilizzati per aumentare la scalabilità del cluster per le operazioni di lettura.
  • Supporto per la forma nativa di transazioni basata sulla combinazione di comandi in un'unica richiesta (le transazioni basate su BEGIN, COMMIT, ROLLBACK, SAVEPOINT e RELEASE non sono supportate).

Informazioni su rqlite 6.0

La nuova versione introduce modifiche architetturali significative volte a migliorare l'affidabilità del cluster migliorando il processo di indirizzamento delle richieste di lettura e scrittura ai nodi del cluster corretti.

Nodi Rqlite ora può multiplexare più connessioni logiche tra loro utilizzando le connessioni TCP stabilite tra i nodi dal protocollo Raft. Se la richiesta richiede l'autorità del nodo leader, ma viene inviata al nodo secondario, il nodo secondario può determinare l'indirizzo del leader e trasmetterlo al client, senza eseguire il calcolo del consenso Raft.

La modifica ha anche rimosso il componente separato per la sincronizzazione dei metadati e ha rimosso la gestione separata di stato e metadati da parte di Raft.

I nodi secondari ora inviano richieste al nodo principale solo quando necessario, quando è necessario conoscere l'indirizzo del nodo principale. L'API offre la possibilità di ottenere informazioni sullo stato di altri nodi nel cluster. Comando Sysdump aggiunto alla CLI.

Infine se sei interessato a saperne di più o consulta le istruzioni di installazione e il manuale utente, puoi farlo dal link sottostante.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.