Valkey 8.1: furca Redis oferă performanță, îmbunătățiri ale memoriei și module noi

Valkey

S-a anunțat lansarea noii versiuni de «Valkey 8.1», o furcă a lui Redis care s-a născut după trecerea la o licență proprietară și care urmărește să mențină filozofia deschisă a proiectului original.

Valkey 8.1 Prezintă un număr mare de îmbunătățiri și modificări, al cărui accent principal este pe optimizările performanței care reduc latența, cresc eficiența memoriei și noile capacități modulare.

Noile funcții cheie în Valkey 8.1

A dintre cele mai semnificative schimbări în această versiune este rescrie completă a tabelului hash, utilizat atât în ​​stocarea datelor cheie-valoare, cât și în tipurile de date structurate, cum ar fi Hash, Set și Sorted Set. Datorită acestei reproiectări, S-a realizat o reducere a utilizării memoriei: cu 20 de octeți mai puțin pe cheie fără TTL, și până la 30 de octeți dacă cheia are o durată de viață definită. În plus, reducerea accesului la memorie aleatoare a dus la o îmbunătățire cu 10% a performanței în mediile I/O cu un singur thread.

O altă caracteristică nouă în Valkey 8.1 este acea iterație peste taste în operațiuni precum comanda KEYS sau Transferul de chei între nodurile dintr-un cluster are acum un sistem de preîncărcare cache, ceea ce permite următoarea cheie să fie disponibilă înainte de începerea procesării. Această abordare a mărit viteza de căutare a cheilor de 3,5 ori prin utilizarea mai bună a memoriei cache a procesorului.

Îmbunătățiri I/O cu mai multe fire și TLS

Valkey își continuă tranziția către un model I/O multi-threaded. Acum, cel Procesarea conexiunii TLS este efectuată în fluxuri separate, care și-a triplat capacitatea de a accepta noi conexiuni. Funcții precum SSL_pending() și ERR_clear_error() au fost, de asemenea, izolate în fire separate, rezultând o creștere a performanței cu 10% pentru operațiunile SET și o creștere cu 22% pentru operațiunile GET.

Replicarea a fost îmbunătățită, în special în mediile cu TLS activ, eliminând operațiuni redundante, cum ar fi sumele de control inutile. Acest lucru a dus la o îmbunătățire cu 18% a sincronizării complete în timpul replicării fără disc și o reducere cu 47% a costului operațiunilor de copiere și scriere.

Optimizări pe mulțimi ordonate și tipuri probabilistice

El Comanda ZRANK pentru seturile comandate a fost optimizat şi Acum este cu 45% mai rapid, în timp ce ZADD a adoptat instrucțiuni SIMD pentru a obține o eficiență mai mare. Pentru tipurile de date probabilistice, utilizarea HyperLogLog a fost îmbunătățită pentru a utiliza doar 12 KB de memorie fixă, iar utilizarea instrucțiunilor AVX2 a permis ca performanța operațiunilor PFMERGE și PFCOUNT să fie înmulțită cu până la 12 ori și BITCOUNT cu până la 5 ori.

Defragmentare activă neîntreruptă și mai mult control asupra registrelor

El sistemul de defragmentare activ a fost de asemenea îmbunătățit pentru a evita blocajele sau întârzierile. Acum, fiecare ciclu de defragmentare durează doar 500 de microsecunde, și a fost implementată o strategie împotriva înfometării pentru a preveni amânarea acestor sarcini din cauza operațiunilor pe termen lung.

Au fost introduse Noi opțiuni de configurare pentru formatarea înregistrărilor, inclusiv formate de timp personalizate și un nou mod COMMANDLOG care înregistrează cereri și răspunsuri lungi. În plus, comanda LATENCY LATEST a fost extinsă cu noi valori, oferind o vizibilitate mai mare asupra latențelor de vârf și de volum înregistrate.

Noi funcții, module și suport

Valkey acum vă permite să executați operația SET IFEQ, care condiţionează scrierea unei chei la valoarea curentă. Asemenea Este introdus suport modular pentru motoarele de scripturi, deschizând posibilitatea utilizării limbilor alternative la Lua prin module personalizate.

În această versiune, de asemenea mai multe module debutează:

  • Modul de căutare (Google): Motor de căutare de similaritate vectorială, ideal pentru cazurile de învățare automată care necesită o latență scăzută și un randament ridicat.
  • Modul JSON (AWS): permite manipularea directă a fragmentelor de document JSON, evitând procesarea completă a conținutului pe client.
  • Modul de filtru de înflorire (AWS): Implementarea filtrelor Bloom, utile pentru determinarea posibilei apartenențe a unui element într-o mulțime, cu eficiență probabilistică

În fine, dacă sunteți interesat să puteți afla mai multe despre acesta, puteți consulta detaliile în următorul link.