Iu bë publik versioni 9.0 i DBMS Valkey, i cili u ndan nga DBMS Redis vitin e kaluar. Forku u formua pas kalimit të Redis 7.4 në një licencë proprietar. Në versionin e lirë Redis 8.0, kodi u kthye në licencën e lirë AGPLv3, por kjo nuk ndodhi në zhvillimin e projektit Valkey. Valkey zhvillohet në një platformë neutrale nën mbështetje të organizatës Linux Foundation me pjesëmarrjen e zhvilluesve nga kompani si Amazon, Google, Oracle, Ericsson dhe Snap. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën BSD. Mbështetet operimi në Linux, macOS, OpenBSD, NetBSD dhe FreeBSD.
DBMS Valkey dhe Redis ofrojnë funksione për ruajtjen e të dhënave në formatin çelës / vlerë, të zgjeruara nga mbështetje për formate të strukturuara të të dhënave si lista, hash dhe grupe, si dhe mundësinë e ekzekutimit të skripteve në anën e serverit serverit përmes skripteve në gjuhën Lua. DB ruhet në memorie dhe sinkronizohet me versionin në disk ose pasqyrohet në logun e ndryshimeve në disk, që garanton ruajtjen e të dhënave në rast të mbylljes së papritur. Mbështeten transaksionet, mënyra 'publikim / abonim', komandat për inkrementim / dekrementim, operacione mbi lista dhe grupe (bashkim, ndërprerje), rinovimi i çelësave, replikimi master-slave, kërkime të shumta dhe funksione renditjeje.
Në këtë version të ri:
- Për transferimin e të dhënave midis nyjave në klaster, përdoret teknika e migracionit atomik të sloteve, ku të dhënat transferohen jo në nivelin e çelësve individualë (një çelës në radhë), por në nivelin e kalimit atomik të 16384 sloteve të ruajtjes së të dhënave. Transferimi bëhet duke përdorur formatin AOF, i cili lejon dërgimin e elementeve individuale të koleksioneve në vend të të gjithë të dhënave të lidhura me çelësin. Ky qasje ndjeshëm rrit performancën, shmang redirektimet dhe eliminon vonesat që ndodhin gjatë aksesit të klientit në çelësin e transferuar.
- Shtohet mundësia e përcaktimit të një kohe të jetesës për çdo fushë në hash-at e lidhur me një çelës (më parë koha e jetesës lidhej me çelësin dhe përfshinte të gjitha fushat). Për menaxhimin e kohës së jetesës së të dhënave janë shtuar komandat e reja: HEXPIRE, HEXPIREAT, HEXPIRETIME, HGETEX, HPERSIST, HPEXPIRE, HPEXPIREAT, HPEXPIRETIME, HPTTL, HSETEX dhe HTTL.
- Ofrohet mundësia e përdorimit në mod të klasterit të BD-ve me numra, ku hapësira e çelësave ndahen në disa BD të ndryshme (në mënyrë default 16).
- ĂshtĂ« rritur efikasiteti i funksionimit tĂ« klasterĂ«ve tĂ« mĂ«dhenj â Ă«shtĂ« demonstruar njĂ« klaster prej 2000 nyjash qĂ« mund tĂ« pĂ«rpunojĂ« njĂ« miliard kĂ«rkesash nĂ« sekondĂ«.
- Shtohet optimizim që në disa raste rrit kapacitetin të paktën me 40% përmes ngarkimit të parashikueshëm të komandave të grupuara në memorie.
- Shtohet optimizim që në disa raste rrit kapacitetin të paktën me 20% duke eliminuar kopjimin e të dhënave në memorie (zero copy) gjatë përpunimit të kërkesave të mëdha.
- Shtohet mbështetje për teknologjinë Multipath TCP për organizimin e dërgimit të pakove përmes disa rrugëzimeve nëpërmjet disa ndërfaqeve rrjedhëse të lidhura me adresa IP të ndryshme. Përdorimi i Multipath TCP lejon në disa raste të reduktojë vonesat për 25%.
- Në BITCOUNT dhe HyperLogLog janë shtuar optimizime që përdorin instrukcione procesori SIMD, në disa raste duke rritur kapacitetin për 200%.
- Në indekset gjeopërshtatëse është shtuar mbështetje për pyetje të lokacionit sipas koordinatave të poligonit.
- Shtohet komanda 'DELIFEQ' për të fshirë një çelës nëse vlera e lidhur me të përputhet me atë të caktuar.
- Në komandën 'CLIENT LIST' është implementuar mundësia për të vendosur filtrore që pastron elementet sipas emrit, flamujve, aktiviteteve, BD-së, adresën IP dhe privilegjeve.
- Rikthehet mbështetje për 25 komandat, që më parë ishin shpallur të vjetra.
Burimi: opennet.ru
