Rqlite 7.0, SQLite'il põhinev hajutatud tõrketaluv DBMS, väljalase

Toimus hajutatud DBMS rqlite 7.0 väljalase, mis kasutab salvestusmootorina SQLite’i ja võimaldab korraldada klastri tööd omavahel sünkroniseeritud salvestustelt. Üks rqlite'i omadusi on hajutatud tõrketaluva salvestusruumi installimise, juurutamise ja hooldamise lihtsus, mis on mõnevõrra sarnane etcd ja Consuliga, kuid kasutab võtme/väärtuse vormingu asemel relatsiooniandmemudelit. Projekti kood on kirjutatud Go-s ja seda levitatakse MIT-i litsentsi all.

Kõigi sõlmede sünkroniseeritud olekus hoidmiseks kasutatakse Raft konsensusalgoritmi. Rqlite kasutab algset SQLite teeki ja go-sqlite3 draiverit, mille peale käivitatakse kiht, mis töötleb kliendi päringuid, teostab replikatsiooni teistesse sõlmedesse ja jälgib juhtsõlme valiku osas konsensuse saavutamist.

Andmebaasi muudatusi saab teha ainult juhiks valitud sõlm, kuid kirjutamisoperatsioonidega ühendusi saab saata ka teistele klastri sõlmedele, mis päringu kordamiseks tagastavad juhi aadressi (järgmises versioonis lubadus lisada taotluste automaatne edastamine juhile). Põhirõhk on tõrketaluvusel, nii et DBMS-i skaleerimine toimub ainult lugemisoperatsioonidega ja kitsaskohaks on kirjutamistoimingud. Rqlite'i klastrit on võimalik käivitada ühest sõlmest ja seda lahendust saab kasutada SQLite'ile juurdepääsu pakkumiseks HTTP kaudu ilma tõrketaluvust tagamata.

Iga sõlme SQLite'i andmeid ei salvestata faili, vaid mällu. Raft-protokolli juurutamise kihi tasemel peetakse kõigi SQLite'i käskude logi, mis viivad andmebaasi muudatusteni. Seda logi kasutatakse replikatsiooni ajal (replikatsioon teiste sõlmede päringute reprodutseerimise tasemel), uue sõlme käivitamisel või ühenduse katkemisest taastumiseks. Logi suuruse vähendamiseks kasutatakse automaatset pakkimist, mis algab pärast teatud arvu muudatusi ja viib hetktõmmise fikseerimiseni, millega seoses hakatakse pidama uut logi (andmebaasi olek mälus on identne hetktõmmise + kogutud muudatuste logiga).

Rqlite'i omadused:

  • Klastrit on lihtne juurutada, ilma et oleks vaja eraldi SQLite'i installimist.
  • Võimalus kiiresti hankida paljundatud SQL-i salvestusruumi.
  • Valmis kasutamiseks tootmisprojektides (tootmistasemel).
  • HTTP(S) API olemasolu, mis võimaldab värskendada andmeid pakettrežiimis ja määrata klastri juhtiva sõlme. Samuti on saadaval käsurea liides ja klienditeegid erinevate programmeerimiskeelte jaoks.
  • Teiste sõlmede tuvastamise teenuse kättesaadavus, mis võimaldab teil dünaamiliselt klastreid luua.
  • Sõlmedevahelise andmevahetuse krüptimise tugi.
  • Võimalus seadistada lugemisel andmete asjakohasuse ja järjepidevuse kontrollimise taset.
  • Valikuline võimalus ühendada kirjutuskaitstud režiimis sõlmed, mis ei osale konsensuse määramisel ja mida kasutatakse klastri skaleeritavuse suurendamiseks lugemistoimingute jaoks.
  • Teie enda tehinguvormide tugi, mis põhineb käskude kombineerimisel ühes päringus (tehinguid BEGIN, COMMIT, ROLLBACK, SAVEPOINT ja RELEASE alusel ei toetata).
  • Kuumade varukoopiate loomise tugi.

Uues väljaandes:

  • Lisatud on automaatse rqlite klasterdamise tugi, kasutades uut sõlmetuvastusteenust, mis võib töötada Consul ja etcd hajutatud salvestusruumil. Teenus võimaldab rqlite sõlmedel üksteist automaatselt leida – administraator peab lihtsalt käivitama mitu sõlme erinevates serverites, määrates ühise konsuli või etcd klastri aadressi (näiteks “example.com:8500”) ja sõlmed eemaldatakse automaatselt. ühendatud klastriks. Juhtsõlm värskendab perioodiliselt teavet oma aadressi kohta Consul või etcd-mälus, mis võimaldab teil hiljem juhti muuta, ilma et oleks vaja teisi sõlmi ümber konfigureerida, samuti lisada uusi sõlmi isegi pärast juhi muutmist. Pärandtuvastusrežiimi teenus, mis töötab AWS Lambdal, on lõpetatud.
  • CLI liides võimaldab määrata korraga mitu hosti – kui esimene sõlm pole saadaval, võetakse ühendust järgmiste masinatega.
  • Rqlited käsurea argumentide sõelumise kood on ümber töödeldud.
  • Aegunud protobufi pakett on katkestatud.
  • Raft-protokolli juurutamisel kasutatav BoltDB salvestusruum on asendatud etcd projekti hargiga bbolt.

Allikas: opennet.ru

Lisa kommentaar