Lëshimi rqlite 6.0, një DBMS i shpërndarë me qëndrueshmëri të lartë të bazuar në SQLite.

ËshtĂ« prezentuar versioni i ri i DB tĂ« shpĂ«rndarĂ« rqlite 6.0, i cili pĂ«rdor SQLite si motor ruajtjeje dhe lejon organizimin e punĂ«s sĂ« njĂ« klasteri me ruajtje tĂ« sinkronizuara. NjĂ« nga karakteristikat e rqlite Ă«shtĂ« thjeshtĂ«sia e instalimit, ngjyrĂ«s dhe mbajtjes sĂ« njĂ« ruajtjeje tĂ« shpĂ«rndarĂ« tĂ« qĂ«ndrueshme, e ngjashme me etcd dhe Consul, por qĂ« pĂ«rdor modelin relacional pĂ«r punĂ«n me tĂ« dhĂ«nat nĂ« vend tĂ« formateve ç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 arritjes së konsensusit Raft. Rqlite përdor bibliotekën origjinale SQLite dhe drejtuesin standard go-sqlite3, mbi të cilët ngrihet një ndërfaqe që trajton kërkesat e klientëve, kryen replikim në nyja të tjera dhe ndjek arritjen e konsensusit për zgjedhjen e nyjës lidere.

Ndryshimet nĂ« DB mund tĂ« bĂ«hen vetĂ«m nga nyja qĂ« Ă«shtĂ« zgjedhur si lidere, por lidhjet me operacionet e shkruar 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 tĂ« shtohet kalimi automatik i kĂ«rkesave te lideri). Fokus i madh Ă«shtĂ« nĂ« qĂ«ndrueshmĂ«ri, prandaj DB pĂ«rshkallĂ«zohet vetĂ«m pĂ«r operacionet e leximit, ndĂ«rsa operacionet e shkruar janĂ« pika e ngushtĂ«. ËshtĂ« e mundur tĂ« startohet njĂ« klaster rqlite nga njĂ« nyje dhe njĂ« zgjidhje e tillĂ« mund tĂ« pĂ«rdoret pĂ«r tĂ« organizuar aksesin nĂ« SQLite mbi HTTP pa ofruar qĂ«ndrueshmĂ«ri.

Të dhënat SQLite në çdo nyje ruhet jo në skedar, por në memorie. Në nivelin e shtresës me realizimin e protokollit Raft mbahet një log i të gjitha komandave SQLite, që shkaktojnë ndryshimin e DB. Ky log përdoret gjatë replikimit (replikimi në nivelin e riprodhimit të kërkesave në nyja të tjera), startimi i një nyjeje të re apo rikuperimi pas humbjes së lidhjes. Për të reduktuar madhësinë e logut, aplikohet paketimi automatik, i cili aktivizohet pas një numri të caktuar ndryshimesh dhe çon në regjistrimin në disk të një snapshot-i, në raport me të cilin fillon të mbahet një log i ri (gjendja e DB në memorie është identike me snapshot-in + logun e akumuluar të ndryshimeve).

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 pĂ«rdorim nĂ« projekte tĂ« punĂ«s (Production-grade).
  • DisponueshmĂ«ria e njĂ« API HTTP(S), qĂ« lejon pĂ«rditĂ«simin e tĂ« dhĂ«nave nĂ« mĂ«nyrĂ« grumbuj dhe pĂ«rcaktimin e nyjĂ«s lidere tĂ« klasterit. Po ashtu, ofrohet njĂ« ndĂ«rfaqe e komandave nĂ« linjĂ« dhe mundĂ«sia e pĂ«rdorimit tĂ« librarive tĂ« ndryshme tĂ« klientit, tĂ« krijuara pĂ«r SQLite.
  • 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ë edicionin e ri janë bërë ndryshime të rëndësishme arkitekturore, të drejtuara në përmirësimin e besueshmërisë së klasterit përmes përmirësimit të procesit të drejtimit të kërkesave për lexim dhe shkruar në nyja të sakta të klasterit. Nyjat rqlite tani mund të shumëfishojnë mes tyre disa lidhje logjike, duke përdorur lidhje TCP të vendosura midis nyjave përmes protokollit Raft. Nëse një kërkesë kërkon autorizime nga nyja lidere, por dërgohet te një nyjë sekondare, nyja sekondare mund të përcaktojë adresën e liderit dhe t'ia dërgojë klientit, pa kryer llogaritin e konsensusit përmes protokollit Raft.

Ndryshimi gjithashtu ka lejuar eliminimin e një komponenti të veçantë për sinkronizimin e metadatatve dhe përjashtimin e përpunimit të veçantë të gjendjes Raft dhe metadatatve. Nyjat sekondare tani drejtojnë kërkesat te nyja-lidere vetëm kur është e nevojshme, kur duhet të dinë adresën e nyjës lidere. Në API është ofruar mundësia për të marrë informacion rreth gjendjes së nyjave të tjera në klaster. Në ndërfaqen e komandës në linjë është shtuar komanda " .sysdump ".

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