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
