Valkey 8.1: Redis fork pasižymi našumu, atminties patobulinimais ir naujais moduliais

Valkey

Buvo paskelbta išleista nauja „Valkey 8.1“ versija, Redis šakutė, kuri gimė po perėjimo prie nuosavybės licencijos ir kuria siekiama išlaikyti atvirą pradinio projekto filosofiją.

Valkey 8.1 Jame yra daug patobulinimų ir pakeitimų, kurio pagrindinis dėmesys skiriamas našumo optimizavimui, kuris sumažina delsą, padidina atminties efektyvumą ir naujas modulines galimybes.

Pagrindinės naujos Valkey 8.1 funkcijos

vienas reikšmingiausių pokyčių šioje versijoje yra visiškai perrašyti maišos lentelę, naudojamas tiek raktinių reikšmių duomenų saugykloje, tiek struktūrizuotų duomenų tipuose, pvz., maišos, rinkinio ir rūšiuoto rinkinio. Dėl šio pertvarkymo, Sumažėjo atminties naudojimas: 20 baitų mažiau vienam raktui be TTL, ir iki 30 baitų, jei raktas turi apibrėžtą tarnavimo laiką. Be to, sumažėjus atsitiktinei prieigai prie atminties, vienos gijos įvesties/išvesties aplinkose našumas pagerėjo 10 %.

Kita nauja „Valkey 8.1“ funkcija yra tai, kad kartojimas per klavišus tokiose operacijose kaip KEYS komanda arba Raktų perkėlimas tarp klasterio mazgų dabar turi talpyklos išankstinio įkėlimo sistemą, kuri leidžia gauti kitą raktą prieš pradedant jo apdorojimą. Šis metodas padidino raktų paieškos greitį 3,5 karto, nes geriau išnaudojo procesoriaus talpyklą.

Kelių gijų I/O ir TLS patobulinimai

„Valkey“ tęsia perėjimą prie kelių gijų įvesties/išvesties modelio. Dabar, TLS ryšio apdorojimas atliekamas atskirais srautais, kuris tris kartus padidino naujų jungčių priėmimo galimybes. Tokios funkcijos kaip SSL_pending() ir ERR_clear_error() taip pat buvo išskirtos į atskiras gijas, todėl SET operacijų našumas padidėjo 10 %, o GET operacijų – 22 %.

Replikacija buvo patobulinta, ypač aplinkoje su aktyvia TLS, pašalinant perteklines operacijas, pvz., nereikalingas kontrolines sumas. Dėl to 18 % pagerėjo visiškas sinchronizavimas replikuojant be disko ir 47 % sumažėjo kopijavimo ir rašymo operacijų sąnaudos.

Užsakytų rinkinių ir tikimybinių tipų optimizavimas

El ZRANK komanda užsakytam rinkiniui buvo optimizuotas ir Dabar jis yra 45% greitesnis, o ZADD priėmė SIMD instrukcijas pasiekti didesnį efektyvumą. Tikimybiniams duomenų tipams HyperLogLog naudojimas buvo patobulintas, kad būtų naudojama tik 12 KB fiksuotos atminties, o AVX2 instrukcijų naudojimas leido PFMERGE ir PFCOUNT operacijų našumą padauginti iki 12 kartų, o BITCOUNT – iki 5 kartų.

Nepertraukiamas aktyvus defragmentavimas ir didesnė registrų kontrolė

El Taip pat patobulinta aktyvaus defragmentavimo sistema kad išvengtumėte užsikimšimų ar vėlavimų. Dabar kiekvienas defragmentavimo ciklas trunka tik 500 mikrosekundžių, ir įgyvendinta kovos su badu strategija, kad šios užduotys nebūtų atidėtos dėl ilgalaikių operacijų.

Buvo pristatyti Naujos įrašo formatavimo konfigūracijos parinktys, įskaitant pasirinktinius laiko formatus ir naują COMMANDLOG režimą, kuris registruoja ilgas užklausas ir atsakymus. Be to, komanda LATENCY LATEST buvo išplėsta nauja metrika, suteikiančia geresnį matomumą įrašytų didžiausių ir apimties delsų metu.

Naujos funkcijos, moduliai ir palaikymas

Valkey dabar leidžia atlikti operaciją SET IFEQ, kuri sąlygoja esamos reikšmės rakto įrašymą. Taip pat Pristatomas modulinis scenarijų variklių palaikymas, atverdamas galimybę naudoti alternatyvias Lua kalbas per pasirinktinius modulius.

Šioje versijoje taip pat debiutavo keli moduliai:

  • Paieškos modulis („Google“): Vektoriaus panašumo paieškos variklis, idealiai tinka mašininio mokymosi atvejams, kuriems reikalinga maža delsa ir didelis pralaidumas.
  • JSON modulis (AWS): leidžia tiesiogiai manipuliuoti JSON dokumentų fragmentais, išvengiant visiško kliento turinio apdorojimo.
  • Bloom filtro modulis (AWS): Bloom filtrų, naudingų nustatant galimą elemento priklausomybę aibėje, įdiegimas tikimybiniu efektyvumu

Galiausiai, jei jus domina galimybė apie tai sužinoti daugiau, išsamią informaciją galite rasti sekanti nuoroda.