Rqlite 7.0, jaotatud usaldusväärne andmebaas SQLite põhjal

Välja anti jaotatud andmebaas rqlite 7.0, mis kasutab SQLite't salvestusmootorina ning võimaldab luua klastreid omavahel sünkroniseeritud andmehoidlate kohta. Rqlite'i eelisteks on lihtne paigaldus, arendamine ja jaotatud usaldusväärse andmehoidla haldamine, mis on sarnane etcd ja Consul'iga, kuid kasutades andmete töötlemisel relatsioonilist mudelit, mitte võtme/väärtuse formaati. Projekti kood on kirjutatud Go keeles ja jagatakse MIT litsentsi alusel.

Kõigi sõlmede sünkroniseeritud oleku säilitamiseks kasutatakse Rafti konsensuse saavutamise algoritmi. Rqlite kasutab originaalset SQLite'i raamatukogu ja draiverit go-sqlite3, millele püstitatakse vahekiht, mis töötleb kliendipäringuid, teostab replikatsiooni teistele sõlmedele ja jälgib konsensuse saavutamist liidrisõlme valiku osas.

Andmebaasidesse saavad muudatusi teha ainult liidri nod, kuid kirjutamisoperatsioonide ühendused võivad suunata ka teiste klastrite nodide poole, mis tagastavad liidri aadressi päringu kordamiseks (järgmisel versioonil lubatakse automaatne liidri poole suunamine). Peamine rõhk on tõrketaluvusel, seega on andmebaasi skaleeritavuse fookus ainult lugemisoperatsioonidel, samas kui kirjutamisoperatsioonid on kitsaskohad. RQLite klastrit on võimalik käivitada ühe nodina ja seda lahendust saab kasutada SQLite ligipääsu korraldamiseks HTTP kaudu, ilma tõrketalve pakkumiseta.

SQLite andmed salvestatakse igas sõlmes mitte failis, vaid mälus. Raft-protokolli rakenduskiht säilitab kõigi SQLite käskude ajalugu, mis toovad kaasa andmebaasi muudatused. Seda ajalugu kasutatakse replikatsiooniks (käsureplikatsioon teistel sõlmedel), uue sõlme käivitamisel või taastamisel pärast sideme kaotust. Ajalooraamatute suuruse vähendamiseks kasutatakse automaatset pakkimist, mis käivitub pärast kindlaksmääratud arvu muudatusi ja toob kaasa hetkpildi fikseerimise, mille põhjal algab uue ajalooraamatu pidamine (andmebaasi olek mälus on identne hetkpildi + kogunenud muudatuste ajalooga).

rqlite omadused:

  • Klastri seadistamise lihtsus, ilma et oleks vaja eraldi SQLite paigaldust.
  • Võime kiiresti saada replikatsiooni SQL-andmebaasi.
  • Valmidus kasutamiseks töös projektides (production-grade).
  • HTTP(S) API olemasolu, mis võimaldab andmeid uuendada paketina ja määrata klastri juhtsõlm. Samuti on saadaval käsurealiides ja klienditeegid erinevatele programmeerimiskeeltele.
  • Teenuse olemasolu, mis võimaldab tuvastada teisi sõlmi, võimaldades klastrite dünaamilist loomist.
  • Andmevahetuse krüptimise tugi sõlmede vahel.
  • Võimalus seadistada andmete kehtivuse ja kooskõla kontrolli taset lugemise ajal.
  • Valikuline võimalus ühendada sõlmi ainult lugemisrežiimis, mis ei osale konsensuse määramisel ning mida kasutatakse klastri skaleeritavuse suurendamiseks lugemisoperatsioonides.
  • Toetab oma tehingute vorme, mis põhinevad käskude rühmitamisel ühes päringus (tehingud, mis põhinevad BEGIN, COMMIT, ROLLBACK, SAVEPOINT ja RELEASE ei ole toetatud).
  • Toetab kuumi varukoopiaid.

Uues väljaandes:

  • Lisatud tugi automaatklasterdamiseks rqlite'iga, kasutades uut sõlmede tuvastamise teenust, mis võib töötada hajutatud salvestustes Consul ja etcd. Teenus võimaldab rqlite sõlmedel üksteist automaatselt leida — administraatoril on piisav lihtsalt käivitada mitu sõlme erinevates. serverites, märkides Consuli või etcd klastrite üldaadressi (nt „example.com:8500”), ja sõlmed kogunevad automaatselt klastrisse. Juhtsõlm värskendab perioodiliselt Consuli või etcd andmehoidlas oma aadressi teavet, mis võimaldab hiljem liidrit muuta ilma teiste sõlmede uuesti seadistamiseta, samuti uusi sõlmi lisada isegi pärast liidri muutmist. Vanade sõlmede avastamise teenuse (Discovery mode), mis töötas AWS Lambda baasil, tugi on lõpetatud.
  • CLI liideses on lubatud korraga märkida mitu hosti — kui esimene sõlm osutub kättesaamatuks, pöördutakse järgmiste hostide poole.
  • Kood, mis käsitleb rqlited käsurea argumente, on ümber töötatud.
  • Protocolli vananenud paketti protobuf ei kasutata enam.
  • Raft protokolli rakenduses kasutatud BoltDB on asendatud bbolt'iga, mis on etcd projekti fork.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster