Valkey 8.1: la bifurcació de Redis presenta millores de rendiment, memòria i nous mòduls

Valkey

S'ha donat a conèixer la alliberament de la nova versió de «Valkey 8.1», una bifurcació de Redis que va néixer després de la transició a una llicència propietària, i que busca mantenir la filosofia oberta del projecte original.

Valkey 8.1 presenta una gran quantitat de millores i canvis, els quals el seu principal enfocament rau en les optimitzacions de rendiment que redueixen la latència, augmenten l'eficiència en memòria i noves capacitats modulars.

Principals novetats de Valkey 8.1

La dels canvis més significatius en aquesta versió és la reescriptura completa de la taula hash, utilitzada tant en l'emmagatzematge de dades clau-valor com en els tipus de dades estructurades com ara Hash, Set i Sorted Set. Gràcies a aquest redisseny, s'ha aconseguit una reducció en l'ús de memòria: 20 bytes menys per cada clau sense TTL, i fins a 30 bytes si la clau té un temps de vida definit. A més, la disminució d'accessos aleatoris a memòria ha permès millorar el rendiment un 10% en entorns d'E/S monofil.

Una altra de les novetats que presenta Valkey 8.1, és que la iteració sobre claus en operacions com la comanda KEYS o la transferència de claus entre nodes en un clúster ara compta amb un sistema de precàrrega a la memòria cau, que permet tenir la següent clau disponible abans que s'iniciï el processament. Aquest enfocament ha multiplicat per 3,5 la velocitat de cerca de claus, en aprofitar millor la memòria cau del processador.

Entrada/sortida multiprocés i millores a TLS

Valkey continua la transició cap a un model d'entrada/sortida multifil. Ara, el processament de connexions TLS es realitza en fluxos independents, cosa que ha triplicat la capacitat d'acceptar noves connexions. També s'han aïllat funcions com SSL_pending() i ERR_clear_error() en fils separats, obtenint com a resultat un increment del 10% en el rendiment d'operacions SET i del 22% en operacions GET.

S'ha millorat la replicació, especialment en entorns amb TLS actiu, eliminant operacions redundants com a sumes de comprovació innecessàries. Això ha derivat en una millora del 18% a la sincronització completa durant la replicació sense disc i una reducció del 47% en el cost de les operacions de còpia i escriptura.

Optimitzacions en conjunts ordenats i tipus probabilístics

El comanda ZRANK per a conjunts ordenats ha estat optimitzat i ara és un 45% més ràpid, mentre que ZADD ha adoptat instruccions SIMD per aconseguir més eficiència. Pel que fa als tipus de dades probabilístiques, l'ús de HyperLogLog ha estat millorat per utilitzar només 12 KB de memòria fixa, i l'ús d'instruccions AVX2 ha permès multiplicar el rendiment de les operacions PFMERGE i PFCOUNT fins a 12 vegades, i les de BITCOUNT fins a 5 vegades.

Desfragmentació activa sense interrupcions i més control sobre registres

El sistema de desfragmentació activa també ha estat millorat per evitar bloquejos o retards. Ara, cada cicle de desfragmentació dura només 500 microsegons, i s'ha implementat una estratègia antiinanició que impedeix que aquestes tasques es posterguin per operacions de llarga durada.

S'han introduït noves opcions de configuració per a formateig de registres, incloent formats de temps personalitzats i un nou mode COMMANDLOG que registra sol·licituds i respostes extenses. A més, la comanda LATENCY LATEST ha estat ampliada amb noves mètriques, oferint més visibilitat sobre els pics i volum de latències registrades.

Noves funcions, mòduls i suport

Valkey ara permet executar l'operació SET IFEQ, que condiciona l'escriptura d'una clau al valor actual. També s'introdueix el suport modular per a motors de scripts, obrint la possibilitat d'usar llenguatges alternatius a Lua a través de mòduls personalitzats.

En aquesta versió també debuten diversos mòduls:

  • Search Module (Google): motor de cerca per similitud vectorial, ideal per a casos daprenentatge automàtic que exigeixen baixa latència i alt rendiment.
  • JSON Module (AWS): permet manipular directament fragments de documents JSON, evitant el processament complet del contingut al client.
  • Bloom Filter Module (AWS): implementació de filtres Bloom, útils per determinar la possible pertinença d'un element a un conjunt, amb eficiència probabilística

Finalment si estàs interessat a poder conèixer més sobre això, pots consultar els detalls al següent enllaç.


Add as preferred source