Valkey 8.1: Redis fork përmban performancë, përmirësime të kujtesës dhe module të reja

Valkey

Është bërë e ditur publikimi i versionit të ri të "Valkey 8.1", një fork i Redis që lindi pas kalimit të tij në një licencë të pronarit, dhe që kërkon të ruajë filozofinë e hapur të projektit origjinal.

Valkey 8.1 Ai përmban një numër të madh përmirësimesh dhe ndryshimesh, fokusi kryesor i të cilit është në optimizimet e performancës që reduktojnë vonesën, rrisin efikasitetin e kujtesës dhe aftësitë e reja modulare.

Karakteristikat kryesore të reja në Valkey 8.1

Një ndër ndryshimet më të rëndësishme në këtë version është rishkrimi i plotë i tabelës hash, përdoret si në ruajtjen e të dhënave me vlerë kyçe ashtu edhe në llojet e të dhënave të strukturuara si Hash, Set dhe Sorted Set. Falë këtij ridizajnimi, Është arritur një reduktim në përdorimin e memories: 20 bajt më pak për çelës pa TTL, dhe deri në 30 bajt nëse çelësi ka një jetëgjatësi të përcaktuar. Përveç kësaj, reduktimi i aksesit të rastësishëm të memories ka çuar në një përmirësim prej 10% të performancës në mjediset I/O me një fije të vetme.

Një veçori tjetër e re në Valkey 8.1 është përsëritja mbi çelësat në operacione të tilla si komanda KEYS ose Transferimi i çelësave ndërmjet nyjeve në një grup tani përmban një sistem parangarkimi të memories, i cili lejon që çelësi tjetër të jetë i disponueshëm përpara se të fillojë përpunimi i tij. Kjo qasje ka rritur shpejtësinë e kërkimit të çelësave me 3,5 herë duke përdorur më mirë cache-in e procesorit.

Përmirësime I/O dhe TLS me shumë fije

Valkey vazhdon kalimin e tij në një model I/O me shumë fije. Tani, Përpunimi i lidhjes TLS kryhet në rrjedha të veçanta, e cila ka trefishuar kapacitetin për të pranuar lidhje të reja. Funksione të tilla si SSL_pending() dhe ERR_clear_error() janë izoluar gjithashtu në thread të veçantë, duke rezultuar në një rritje të performancës 10% për operacionet SET dhe një rritje 22% për operacionet GET.

Replikimi është përmirësuar, veçanërisht në mjedise me TLS aktive, duke eliminuar operacionet e tepërta si shumat e kontrollit të panevojshëm. Kjo ka rezultuar në një përmirësim prej 18% në sinkronizimin e plotë gjatë riprodhimit pa disk dhe një ulje prej 47% në koston e operacioneve të kopjimit dhe shkrimit.

Optimizimet në grupe të renditura dhe lloje probabilistike

El Komanda ZRANK për grupet e porositura është optimizuar dhe Tani është 45% më i shpejtë, ndërsa ZADD ka miratuar udhëzimet SIMD për të arritur një efikasitet më të madh. Për llojet probabilistike të të dhënave, përdorimi i HyperLogLog është përmirësuar për të përdorur vetëm 12 KB memorie fikse dhe përdorimi i udhëzimeve AVX2 ka lejuar që performanca e operacioneve PFMERGE dhe PFCOUNT të shumëzohet deri në 12 herë dhe BITCOUNT deri në 5 herë.

Defragmentim aktiv i pandërprerë dhe më shumë kontroll mbi regjistrat

El Sistemi aktiv i defragmentimit është përmirësuar gjithashtu për të shmangur bllokimet apo vonesat. Tani, çdo cikël defragmentimi zgjat vetëm 500 mikrosekonda, dhe është zbatuar një strategji kundër urisë për të parandaluar shtyrjen e këtyre detyrave për shkak të operacioneve afatgjata.

Janë prezantuar Opsione të reja konfigurimi për formatimin e regjistrimeve, duke përfshirë formatet e personalizuara të kohës dhe një modalitet të ri COMMANDLOG që regjistron kërkesat dhe përgjigjet e gjata. Për më tepër, komanda LATENCY LATEST është zgjeruar me metrika të reja, duke ofruar shikueshmëri më të madhe në vonesat e pikut dhe vëllimit të regjistruar.

Karakteristika të reja, module dhe mbështetje

Valkey tani ju lejon të ekzekutoni operacionin SET IFEQ, e cila kushtëzon shkrimin e një çelësi me vlerën aktuale. Gjithashtu Prezantohet mbështetja modulare për motorët e skriptit, duke hapur mundësinë e përdorimit të gjuhëve alternative për Lua përmes moduleve të personalizuara.

Në këtë version gjithashtu debutojnë disa module:

  • Moduli i Kërkimit (Google): Motori i kërkimit me ngjashmëri vektoriale, ideal për rastet e mësimit të makinerive që kërkojnë vonesë të ulët dhe xhiro të lartë.
  • Moduli JSON (AWS): lejon manipulimin e drejtpërdrejtë të fragmenteve të dokumentit JSON, duke shmangur përpunimin e plotë të përmbajtjes në klient.
  • Moduli i filtrit të lulëzimit (AWS): Implementimi i filtrave Bloom, të dobishëm për përcaktimin e anëtarësimit të mundshëm të një elementi në një grup, me efikasitet probabilistik

Së fundi, nëse jeni të interesuar të jeni në gjendje të dini më shumë rreth tij, mund të konsultoni detajet në lidhja vijuese.