ĂshtĂ« publikuar publikimi i sistemit tĂ« menaxhimit tĂ« bazave tĂ« tĂ« dhĂ«nave Redis 8.4, i pĂ«rkitektuar si njĂ« sistem NoSQL. Redis ofron funksione pĂ«r ruajtjen e tĂ« dhĂ«nave nĂ« formĂ«n çelĂ«s/ vlerĂ«, tĂ« zgjeruara me mbĂ«shtetje pĂ«r formate tĂ« strukturuara tĂ« tĂ« dhĂ«nave, si lista, hash dhe grupe, si dhe mundĂ«sinĂ« pĂ«r tĂ« ekzekutuar skripte procesesh nĂ« anĂ«n e serverit nĂ« gjuhĂ«n Lua. Kodi i projektit Ă«shtĂ« shkruar nĂ« gjuhĂ«n C dhe shpĂ«rndahet nĂ«n licencĂ«n AGPLv3.
DBMS Redis mbështet transaksionet, duke lejuar ekzekutimin e një grupi komandash në një hap, duke garantuar përputhshmëri dhe renditje (komandat nga kërkesa të tjera nuk mund të ndërhyjnë) në ekzekutimin e një grumbulli të caktuar komandash, dhe në rast problemesh duke lejuar kthimin e ndryshimeve. Të gjitha të dhënat ruhen plotësisht në memorie të përkohshme. Bibliotekat klient janë të disponueshme për shumicën e gjuhëve të njohura, duke përfshirë Perl, Python, PHP, Java, Ruby dhe Tcl.
PĂ«r menaxhimin e tĂ« dhĂ«nave ofrohen komandat si inkrement/dekrement, operacione standarde mbi lista dhe grupe (bashkimi, ndĂ«rprerja), rinovimi i çelĂ«save, seleksione tĂ« shumta dhe funksione renditjeje. MbĂ«shteten dy modo ruajtjeje: sinkronizimi periodic i tĂ« dhĂ«nave nĂ« disk dhe mbajtja e njĂ« logu tĂ« ndryshimeve nĂ« disk. NĂ« rastin e dytĂ« garanton ruajtjen e plotĂ« tĂ« tĂ« gjitha ndryshimeve. ĂshtĂ« e mundur organizimi i replikimit master-slave tĂ« tĂ« dhĂ«nave nĂ« disa servera, i realizuar nĂ« njĂ« mĂ«nyrĂ« jo bllokuese. Gjithashtu Ă«shtĂ« nĂ« dispozicion modaliteti i shkĂ«mbimit tĂ« mesazheve "publikim/abonim", ku krijohet njĂ« kanal, mesazhet prej tĂ« cilit shpĂ«rndahen te klientĂ«t sipas abonimit.
Ndryshimet kryesore në Redis 8.4:
- Shtuar komandën "FT.HYBRID" me implementimin e kërkimit hibrid, që kombinon në një kërkesë mundësitë e kërkimit të plotë dhe atij vektorik, duke marrë parasysh si përputhjet e drejtpërdrejta ashtu edhe afërsinë semantike. Mbështeten mundësitë e agregatizimit të rezultateve me sintaksë të ngjashme me komandën "FT.AGGREGATE".
- Rritja e kapacitetit në aplikacionet tipike të Redis për keqkuptimin. Për shembull, në ngarkesa që përfshijnë 10% operacione shkrimi (SET) dhe 90% operacione leximi (GET) dhe ruajtjen e vlerave string me madhësi 1 Kb, rritja e kapacitetit arriti deri në 30%.

- Rritur performanca e operacioneve të kërkimit (FT.SEARCH) dhe agregatizimit të rezultateve (FT.AGGREGATE). Në sistemet e ngarkuara me numër të madh paralelësh, është vënë re një rritje e kapacitetit dhe ulje e vonesave deri në 4.7 herë në kërkimin dhe deri në 1.4 herë në agregatizimin e rezultateve.

- Optimizuar ndarjen e memorie gjatë ekzekutimit të kërkesave dhe ofruar mundësia për të rregulluar sjelljen në rast të tejkalimit të memories së disponueshme (OOM, out-of-memory).
- Ulet përdorimi i memories për ruajtjen e vargjeve të vogla (deri në 7 byte) në struktura me tipin JSON. Për shembull, një array në JSON me 500 elemente të vogla në format çelës/vlerë tani zë 37% më pak memorie.
- Rritur efikasitetin e ruajtjes së vargjeve numerike JSON, të gjitha elementet e të cilave kanë një tip (nëse më parë për çdo element në një array të tillë ruhej tipi dhe vlera, tani tipi ruhet një herë për të gjithë arrayn). Në testin e zhvilluar, array-at e tillë me një milion elemente homogjene tani kërkojnë nga 50-92% më pak memorie në varësi të tipit.
- Në komandën SET janë shtuar opsionet IFEQ, IFNE, IFDEQ dhe IFDNE, që lejojnë kryerjen e një komande për përditësimin e një çelësi string në situata kur vlera përkatëse nuk është ndryshuar nga një klient tjetër që nga momenti i ekstraktimit.
- Shtuar komandën XDELEX për eliminimin atomic të një çelësi string, nëse vlera përkatëse nuk është ndryshuar që nga momenti i ekstraktimit.
- Shtuar komandën DIGEST, që kthen një hash të vlerës së lidhur me çelësin e caktuar.
- Në komandën XREADGROUP është shtuar opsioni "CLAIM " për të lexuar si mesazhe në pritje (idle pending), ashtu edhe ato të ardhura (incoming).
- Shtuar komandën MSETEX për vendosjen ose përditësimin atomic të disa çelësave string, si dhe për përditësimin e kohës së jetës së tyre.
- Shtuar mekanizmi i migrozit atomic të slot-eve midis nyjave të klasterit (ASM - Atomic Slot Migration), i ngjashëm me replikimin e plotë sinhron, por që funksionon në nivel të slot-eve të veçanta të ruajtjes së të dhënave. Shtuar komandën CLUSTER MIGRATION, me ndihmën e së cilës mund të importoni slot-e nga nyja të tjera, të ndjekni përparimin e migrimit dhe, sipas nevojës, të shënoni operacionet e migrimit në pritje.
- Shtuar komandën CLUSTER SLOT-STATS për të vlerësuar statistikën në klaster në ndarjen e slot-eve individuale, si numri i çelësave, ngarkesa e CPU dhe input/output rrjeti.
Burimi: opennet.ru


