Vydanie rqlite 6.0, distribuovanej odolnej DBMS založenej na SQLite

Bol released the distributed DBMS rqlite 6.0, which uses SQLite as its storage engine and allows for the organization of a cluster of synchronized storage systems. rqlite is noted for its ease of installation, deployment, and maintenance of a distributed fault-tolerant storage, somewhat similar to etcd and Consul, but utilizing a relational model for data handling instead of a key/value format. The project's code is written in Go and is distributed under the MIT license.

To keep all nodes in a synchronized state, the Raft consensus algorithm is used. Rqlite employs the original SQLite library and the standard go-sqlite3 driver, on top of which runs a layer that processes client requests, performs replication to other nodes, and monitors the consensus for leader selection.

Changes in the database can only be made by the node elected as the leader, but write operation connections can also be directed to other cluster nodes, which will return the leader's address to repeat the request (the next version promises to add automatic forwarding to the leader). The main focus is on fault tolerance, so the DBMS scales only for read operations, while write operations are a bottleneck. A rqlite cluster can be run from a single node, and such a solution can be used to provide SQLite access over HTTP without ensuring fault tolerance.

SQLite data on each node is stored in memory, not in a file. At the Raft protocol implementation layer, a log of all SQLite commands that change the database is maintained. This log is used during replication (replication at the request replay level on other nodes), launching a new node, or recovery after loss of connectivity. To reduce the log size, automatic packing is applied, which starts after a specified number of changes and leads to the snapshot being fixed on disk, relative to which a new log begins (the in-memory database state is identical to the snapshot plus the accumulated change log).

Vlastnosti rqlite:

  • Jednoduchosť nasadenia klasteru, bez potreby samostatnej inštalácie SQLite.
  • Možnosť rýchlo získať replikované SQL úložisko.
  • Ready for use in production projects.
  • Disponibilita HTTP(S) API, ktorá umožňuje aktualizovať údaje v dávkovom režime a určiť vedúci uzol klastera. Taktiež je poskytované rozhranie príkazového riadka a možnosť používania rôznych klientskych knižníc vytvorených pre SQLite.
  • Existencia služby na zisťovanie iných uzlov, ktorá umožňuje dynamicky vytvárať klastre.
  • Podpora šifrovania prenosu dát medzi uzlami.
  • Možnosť nastaviť úroveň overovania aktuálnosti a konzistentnosti dát pri čítaní.
  • Voliteľná možnosť pripojenia uzlov v režime iba na čítanie, ktoré sa nezúčastňujú na určení konsenzu a sú využívané na zvyšovanie škálovateľnosti klastru pri operáciách čítania.
  • Podpora vlastných transakčných foriem založených na zlúčení príkazov v jednom dopyte (transakcie založené na BEGIN, COMMIT, ROLLBACK, SAVEPOINT a RELEASE nie sú podporované).
  • Podpora vytvárania horúcich záloh.

V novom vydaní boli vykonané významné architektonické zmeny zamerané na zlepšenie spoľahlivosti klastera prostredníctvom vylepšeného procesu smerovania požiadaviek na čítanie a zápis k správnym uzlom klastera. Uzly rqlite teraz môžu multiplexovať medzi sebou niekoľko logických spojení, pričom využívajú TCP spojenia, ktoré sú vytvorené medzi uzlami pomocou protokolu Raft. Ak požiadavka vyžaduje oprávnenia vedúceho uzla, ale je zaslaná sekundárnemu uzlu, sekundárny uzol môže určiť adresu lídra a odovzdať ju klientovi, bez vykonania výpočtu konsenzu podľa protokolu Raft.

Zmena taktiež umožnila zbaviť sa samostatnej zložky na synchronizáciu metadát a vylúčiť samostatné spracovanie stavu Raft a metadát. Sekundárne uzly teraz smerujú požiadavky k uzlu-líderovi iba v prípade potreby, keď potrebujú získať adresu vedúceho uzla. V API bola pridaná možnosť získania informácií o stave iných uzlov v klasteri. Do rozhrania príkazového riadka bola pridaná príkaz „.sysdump“.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster