Lëshimi rqlite 7.0, një DBMS të shpërndarë dhe me disponueshmëri të lartë të bazuar në SQLite

U lançua DBMS-i i shpërndarë rqlite 7.0, i cili përdor SQLite si motor ruajtjeje dhe lejon organizimin e punës së një klasteri të magazinave të sinkronizuara. Një nga veçoritë e rqlite është thjeshtësia e instalimit, vendosjes dhe mirëmbajtjes së një ruajtjeje të shpërndarë me disponueshmëri të lartë, e ngjashme me etcd dhe Consul, por që përdor një model relational 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ë gjithë nyjat në një gjendje të sinkronizuar, përdoret algoritmi i arritjes së konsensusit Raft. Rqlite përdor bibliotekën origjinale SQLite dhe drejtorin go-sqlite3, mbi të cilat operohet një ndërfaqe që përpunon kërkesat e klientëve, kryen replikimin në nyja të tjera dhe monitoron arritjen e konsensusit për zgjedhjen e nyjës udhëheqëse.

Ndryshimet nĂ« bazĂ«n e tĂ« dhĂ«nave mund tĂ« bĂ«hen vetĂ«m nga nyja e cila Ă«shtĂ« zgjedhur si udhĂ«heqĂ«se, por lidhjet me operacionet e shkrimit mund tĂ« drejtohen edhe te nyja tĂ« tjera tĂ« klasterit, tĂ« cilat do tĂ« kthejnĂ« adresĂ«n e udhĂ«heqĂ«sit pĂ«r tĂ« pĂ«rsĂ«ritur kĂ«rkesĂ«n (nĂ« versionin e ardhshĂ«m premtohet shtimi i kalimit automatik tĂ« kĂ«rkesave te udhĂ«heqĂ«si). Fokusimi kryesor Ă«shtĂ« nĂ« disponueshmĂ«rinĂ« e lartĂ«, prandaj DBMS-i zgjeron vetĂ«m operacionet e leximin, ndĂ«rsa operacionet e shkrimit janĂ« pika ngushtĂ«. ËshtĂ« e mundur tĂ« nisni njĂ« klaster rqlite nga njĂ« nyjĂ«, dhe kjo zgjidhje mund tĂ« pĂ«rdoret pĂ«r tĂ« organizuar qasjen nĂ« SQLite pĂ«rmes HTTP pa ofruar disponueshmĂ«ri tĂ« lartĂ«.

Të dhënat SQLite në çdo nyje ruhen jo në skedar, por në memorje. Në nivelin e implementimit të protokollit Raft, mbahet një regjistër i të gjitha komandave SQLite që ndryshojnë bazën e të dhënave. Ky regjistër përdoret gjatë replikimit (replikimi në nivelin e riprodhimit të kërkesave në nyja të tjera), gjatë aktivizimit të një nyje të re ose për rimëkëmbjen pas humbjes së lidhjes. Për të reduktuar madhësinë e regjistrit, aplikohet një paketim automatik që fillon pas një numri të caktuar ndryshimesh dhe çon në fiksen e një snapshot-i, mbi të cilin fillon regjistri i ri (gjendja e bazës në memorje është identike me snapshot-in + regjistrin e grumbulluar të ndryshimeve).

Veçoritë e rqlite:

  • ThjeshtĂ«sia e vendosjes sĂ« klasterit, pa nevojĂ«n pĂ«r njĂ« instalim tĂ« veçantĂ« tĂ« SQLite.
  • MundĂ«sia pĂ«r tĂ« marrĂ« shpejt njĂ« ruajtje SQL tĂ« replikuar.
  • Gati pĂ«r t'u pĂ«rdorur nĂ« projekte pune (production-grade).
  • Prania e API HTTP(S), e cila lejon rikthimin e tĂ« dhĂ«nave nĂ« grupe dhe pĂ«rcaktimin e nyjĂ«s kryesore tĂ« klasterit. Gjithashtu ofrohet njĂ« ndĂ«rfaqe pĂ«r linjat e komandave dhe biblioteka klienti pĂ«r gjuhĂ« tĂ« ndryshme programimi.
  • Prania e njĂ« shĂ«rbimi pĂ«r pĂ«rcaktimin e nyjave tĂ« tjera, duke lejuar krijimin dinamik tĂ« klastereve.
  • MbĂ«shtetje pĂ«r enkriptimin e shkĂ«mbimit tĂ« tĂ« dhĂ«nave ndĂ«rmjet nyjave.
  • MundĂ«sia pĂ«r tĂ« konfiguruar nivelin e verifikimit tĂ« vlefshmĂ«risĂ« dhe koherencĂ«s sĂ« tĂ« dhĂ«nave gjatĂ« leximet.
  • MundĂ«si opsionale pĂ«r tĂ« lidhur nyjat nĂ« mĂ«nyrĂ« vetĂ«m pĂ«r lexim, qĂ« nuk marrin pjesĂ« nĂ« pĂ«rcaktimin e konsensusit dhe pĂ«rdoren pĂ«r tĂ« rritur shkallĂ«zimin e klasterit pĂ«r operacione lexim.
  • MbĂ«shtetje pĂ«r njĂ« formĂ« tĂ« vetme transaksionesh bazuar nĂ« bashkimin e komandave nĂ« njĂ« kĂ«rkesĂ« (transaksionet bazuar nĂ« BEGIN, COMMIT, ROLLBACK, SAVEPOINT dhe RELEASE nuk mbĂ«shteten).
  • MbĂ«shtetje pĂ«r krijimin e kopjeve rezervĂ« tĂ« nxehta.

NĂ« versionin e ri:

  • Shtuar mbĂ«shtetje pĂ«r klasterizimin automatike rqlite me pĂ«rdorimin e shĂ«rbimit tĂ« ri pĂ«r pĂ«rcaktimin e nyjave, i cili mund tĂ« punojĂ« mbi ruajtjet e shpĂ«rndara Consul dhe etcd. ShĂ«rbimi lejon nyjat rqlite tĂ« gjejnĂ« njĂ«ra-tjetrĂ«n automatikisht — administratorit i mjafton tĂ« nisĂ« disa nyja nĂ« vende tĂ« ndryshme, sistemet, duke specifikuar adresĂ«n pĂ«rbashkĂ«t tĂ« klasterit Consul ose etcd (p.sh. "example.com:8500"), dhe nyjat automatikisht do tĂ« kombinohen nĂ« njĂ« klaster. Nyja kryesore pĂ«rditĂ«son periodikisht nĂ« ruajtjen Consul ose etcd informacionin mbi adresĂ«n e saj, duke lejuar ndryshimin e liderit pa nevojĂ«n pĂ«r ri-konfigurimin e nyjave tĂ« tjera, si dhe shtimin e nyjave tĂ« reja edhe pas ndryshimit tĂ« liderit. MbĂ«shtetja pĂ«r shĂ«rbimin e vjetĂ«r tĂ« pĂ«rcaktimit tĂ« nyjave (Discovery mode), qĂ« funksionon mbi bazĂ«n e AWS Lambda, Ă«shtĂ« ndalur.
  • NĂ« ndĂ«rfaqen CLI Ă«shtĂ« lejuar pĂ«rcaktimi i disa hosteve njĂ«herĂ«sh — nĂ«se nyja e parĂ« nuk Ă«shtĂ« e aksesueshme, do tĂ« ndĂ«rpritet pĂ«r tĂ« vizituar hostet e tjerĂ«.
  • Rishikuar kodi pĂ«r analizĂ«n e argumenteve tĂ« linjĂ«s sĂ« komandĂ«s rqlited.
  • KĂ«tu Ă«shtĂ« ndaluar pĂ«rdorimi i paketĂ«s sĂ« vjetĂ«ruar protobuf.
  • Ruajtja BoltDB, qĂ« pĂ«rdoret nĂ« implementimin e protokollit Raft, Ă«shtĂ« zĂ«vendĂ«suar me bbolt, njĂ« fork nga projekti etcd.

Burimi: opennet.ru

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