Lëshimi rqlite 7.0, një DBMS e shpërndarë dhe e qëndrueshme e bazuar në SQLite

Lansohet rqlite 7.0, një sistem i shpërndarë i menaxhimit të bazës së të dhënave që përdor SQLite si motor ruajtjeje dhe lejon organizimin e një klasteri me depo të sinkronizuara mes tyre. Një nga karakteristikat e rqlite është thjeshtësia e instalimit, shpërndarjes dhe mbështetjes së një depoje të shpërndarë me qëndrueshmëri, njësoj si etcd dhe Consul, por që përdor modelin relacional për punën me të dhënat në vend të formatit çelës/vlerë. Kodi i projektit është shkruar në gjuhën Go dhe shpërndahet nën licencën MIT.

Për të mbajtur të gjitha nyjat në një gjendje të sinkronizuar, përdoret algoritmi i arrijes së konsensusit Raft. Rqlite përdor bibliotekën origjinale SQLite dhe driverin go-sqlite3, mbi të cilat shkarkohet një ndërfaqe që trajton kërkesat e klientëve, kryen replikimin në nyjat e tjera dhe ndjek arritjen e konsensusit për zgjedhjen e nyjës lidere.

Ndryshimet nĂ« bazĂ«n e tĂ« dhĂ«nave mund tĂ« kryhen vetĂ«m nga nyja e cila Ă«shtĂ« zgjedhur si lider, por lidhjet me operacionet e shkrimit mund tĂ« drejtohen edhe te nyjat e tjera tĂ« klasterit, tĂ« cilat do tĂ« kthejnĂ« adresĂ«n e liderit pĂ«r pĂ«rsĂ«ritjen e kĂ«rkesĂ«s (nĂ« versionin e ardhshĂ«m premtohet se do tĂ« shtohet automatikisht redirektimi i kĂ«rkesave te lideri). Theksi i madh vihet mbi qĂ«ndrueshmĂ«rinĂ«, ndaj DBMS zgjerohet vetĂ«m sipas operacioneve tĂ« leximit, ndĂ«rsa operacionet e shkrimit janĂ« pika e ngushtĂ«. ËshtĂ« e mundur tĂ« startohet njĂ« klaster rqlite nga njĂ« nyje e vetme, dhe ky zgjidhje mund tĂ« pĂ«rdoret pĂ«r tĂ« organizuar aksesin nĂ« SQLite sipas HTTP pa ofruar qĂ«ndrueshmĂ«ri.

Të dhënat SQLite në çdo nyje ruhen jo në skedar, por në kujtesë. Në nivelin e shtresës me implementimin e protokollit Raft bëhet një regjistër i të gjitha komandave SQLite që çojnë në ndryshimin e bazës së të dhënave. Ky regjistër përdoret gjatë replikimit (replikimi në nivelin e riprodhimit të kërkesave në nyje të tjera), kur aktivizohet një nyje e re ose për rikuperimin pas humbjes së lidhshmërisë. Për të reduktuar madhësinë e regjistrit aplikohet paketimi automatik, i cili aktivizohet pas një numri të caktuar ndryshimesh dhe çon në regjistrimin e një snapshot-i, në lidhje me të cilin fillon të mbahet një regjistër i ri (gjendja e bazës në kujtesë është identike me snapshot-in + regjistrin e ndryshimeve të grumbulluara).

Karakteristikat e rqlite:

  • ThjeshtĂ«sia e shpĂ«rndarjes sĂ« klasterit, pa nevojĂ«n e instalimit tĂ« veçantĂ« tĂ« SQLite.
  • MundĂ«sia pĂ«r tĂ« marrĂ« shpejt njĂ« depo SQL tĂ« replikuar.
  • Gati pĂ«r t'u pĂ«rdorur nĂ« projekte pune (produksion).
  • Prania e njĂ« API HTTP(S) qĂ« lejon pĂ«rditĂ«simin e tĂ« dhĂ«nave nĂ« modalitetin e paketĂ«s dhe pĂ«rcaktimin e nyjĂ«s udhĂ«heqĂ«se tĂ« klasterit. Gjithashtu, ofrohet njĂ« ndĂ«rfaqe e linjĂ«s sĂ« komandĂ«s dhe libra klienti pĂ«r gjuhĂ« tĂ« ndryshme programimi.
  • Disponibiliteti i shĂ«rbimit pĂ«r tĂ« identifikuar node tĂ« tjera, duke lejuar krijimin dinamik tĂ« klasterĂ«ve.
  • MbĂ«shtetje pĂ«r enkriptimin e komunikimit tĂ« tĂ« dhĂ«nave midis node-ve.
  • MundĂ«sia pĂ«r tĂ« konfigurur nivelin e verifikimit tĂ« аĐșŃ‚ŃƒĐ°Đ»itetit dhe koherencĂ«s sĂ« tĂ« dhĂ«nave gjatĂ« leximit.
  • MundĂ«si opsionale pĂ«r tĂ« lidhur node nĂ« mĂ«nyrĂ« vetĂ«m pĂ«r lexim, tĂ« cilat nuk marrin pjesĂ« nĂ« pĂ«rcaktimin e konsensusit dhe pĂ«rdoren pĂ«r tĂ« rritur shkallĂ«zueshmĂ«rinĂ« e klasterit pĂ«r operacionet e leximit.
  • MbĂ«shtetje pĂ«r forma tĂ« veta tĂ« transaksioneve tĂ« bazuara nĂ« bashkimin e komandave nĂ« njĂ« kĂ«rkesĂ« (transaksionet e bazuara nĂ« BEGIN, COMMIT, ROLLBACK, SAVEPOINT dhe RELEASE nuk mbĂ«shteten).
  • MbĂ«shtetje pĂ«r krijimin e kopjeve rezervĂ« tĂ« nxehta.

Në lëshimin e ri:

  • Shtuar mbĂ«shtetje pĂ«r klasterimin automatik rqlite duke pĂ«rdorur shĂ«rbimin e ri pĂ«r identifikimin e node-ve, i cili mund tĂ« funksionojĂ« mbi ruajtjen e shpĂ«rndarĂ« Consul dhe etcd. ShĂ«rbimi lejon qĂ« node-t e rqlite tĂ« gjejnĂ« njĂ«ri-tjetrin automatikisht — administratori ka nevojĂ« vetĂ«m tĂ« nisĂ« disa node nĂ« mĂ«nyra tĂ« ndryshme. serverĂ«, duke treguar adresĂ«n e pĂ«rgjithshme tĂ« klashtit Consul ose etcd (p.sh., "example.com:8500"), node-t do tĂ« bashkohen automatikisht nĂ« klasht. Node kryesor pĂ«rditĂ«son periodikisht nĂ« depozitat Consul ose etcd informacionin pĂ«r adresĂ«n e tij, duke lejuar qĂ« mĂ« pas tĂ« ndryshohet lideri pa pasur nevojĂ« pĂ«r rikonfigurim tĂ« node-ve tĂ« tjera, si dhe tĂ« shtohen node tĂ« reja edhe pas ndryshimit tĂ« liderit. MbĂ«shtetje pĂ«r shĂ«rbimin e vjetĂ«r tĂ« pĂ«rk discovery (Discovery mode) i cili punonte mbi bazĂ«n e AWS Lambda, Ă«shtĂ« ndĂ«rprerĂ«.
  • NĂ« ndĂ«rfaqen CLI, lejohet tregimi i disa hosteve menjĂ«herĂ« — nĂ«se node-i i parĂ« Ă«shtĂ« i padisponueshĂ«m, do tĂ« bĂ«het thirrje pĂ«r hostet e tjerĂ«.
  • Kodi pĂ«r analizimin e argumenteve tĂ« linjĂ«s sĂ« komandĂ«s rqlited Ă«shtĂ« rinegjuar.
  • PĂ«rdorimi i paketĂ«s sĂ« vjetĂ«r protobuf Ă«shtĂ« ndĂ«rprerĂ«.
  • Depozita BoltDB e pĂ«rdorur nĂ« zbatimin e protokollit Raft Ă«shtĂ« zĂ«vendĂ«suar me bbolt, njĂ« fork nga projekti etcd.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster