Rilasciato Valkey 9.0: Innovazioni e Prestazioni Record

Rilasciato Valkey 9.0: Innovazioni e Prestazioni Record

Valkey è un sistema di gestione di database che opera direttamente nella memoria RAM del computer, offrendo tempi di risposta estremamente rapidi. Si tratta di un progetto open source, cioè a codice sorgente aperto, pensato per garantire prestazioni elevate, scalabilità su più livelli e affidabilità anche in ambienti complessi.

Il progetto Valkey è stato avviato nel 2023 come fork (ramificazione indipendente) dal noto progetto Redis, in seguito a cambiamenti nella governance di Redis che hanno portato alcune aziende e membri della comunità open source a creare una nuova iniziativa sotto l’egida della Linux Foundation. L’obiettivo era garantire che il database rimanesse veramente open source, con una gestione trasparente e comunitaria.

Il progetto è distribuito con licenza BSD a 3 clausole, una formula che consente l’utilizzo libero del software sia in contesti commerciali che non commerciali, senza vincoli restrittivi. Valkey è multi-piattaforma, il che significa che può essere installata e utilizzata su diversi sistemi operativi, tra cui la distribuzione GNU/Linux, macOS e Windows, garantendo ampia compatibilità e flessibilità.

Inoltre Valkey si distingue per la sua attenzione alla compatibilità con le applicazioni già esistenti, permettendo una transizione agevole, e per l’introduzione di funzionalità moderne pensate per gestire carichi di lavoro intensivi e dinamici.

La versione 8.0 è stata la prima versione stabile di Valkey, pubblicata nel 2024. Questa versione ha mantenuto la piena compatibilità con Redis 7.x, fungendo da sostituto diretto per chi desiderava migrare senza modificare le applicazioni esistenti. Da quel momento, il progetto ha seguito una propria roadmap, introducendo nuove funzionalità e ottimizzazioni indipendenti.

La nuova versione Valkey 9.0, appena rilasciata il 21 ottobre 2025, rappresenta il 2° aggiornamento di rilievo nella storia del progetto. Questa versione introduce novità sostanziali, tra cui funzionalità richieste da tempo dalla comunità degli sviluppatori e miglioramenti alle caratteristiche tradizionali del database, ora ottimizzate per rispondere in modo più efficace alle esigenze attuali. L’aggiornamento riflette l’evoluzione del progetto verso una maggiore efficienza, mantenendo al contempo la compatibilità con le cartelle e i contenuti già presenti nei repository software ufficiali.

Novità in Valkey 9.0

Valkey 9.0 porta con sé una serie di miglioramenti che ne estendono le capacità e ne semplificano l’utilizzo in ambienti complessi. Tra le principali novità troviamo la migrazione atomica degli slot, la scadenza dei campi nelle strutture hash, il supporto ai database numerati in modalità cluster e numerose ottimizzazioni delle prestazioni.

Migrazione atomica degli slot

Nel primo rilascio stabile, Valkey migrava i dati all’interno di un cluster chiave per chiave. Questo approccio, sebbene funzionale nella maggior parte dei casi, poteva portare a problemi di prestazioni, complicazioni operative e, nei casi peggiori, a blocchi nella migrazione dei nodi o alla perdita di dati.

La migrazione chiave per chiave utilizza una sequenza di tipo “sposta-poi-elimina”. Se un client tenta di accedere a una chiave durante una migrazione parziale, potrebbe non sapere se la chiave risiede ancora nel nodo originale o in quello nuovo, causando un aumento dei salti di rete e un sovraccarico di elaborazione. Inoltre, in operazioni multi-chiave, se una chiave si trova nel nodo originale e un’altra in quello nuovo, Valkey non può eseguire correttamente il comando e richiede al client di ripetere la richiesta fino a quando tutti i dati non risiedono in un unico nodo. Questo comporta una mini-interruzione in cui i dati sono ancora presenti ma inaccessibili fino al completamento della migrazione.

Un altro problema si verifica quando Valkey tenta di migrare una chiave molto grande (come collezioni di dati in strutture come insiemi ordinati, insiemi o liste) da un nodo all’altro: la chiave potrebbe essere troppo grande per essere accettata dal buffer di input del nodo di destinazione, bloccando la migrazione e richiedendo un intervento manuale per aumentare il limite del buffer o rischiando la perdita di dati.

In Valkey, le chiavi sono raggruppate in 16.384 slot e ogni nodo gestisce uno o più slot. Con Valkey 9.0, invece di migrare le chiavi singolarmente, Valkey sposta interi slot in modo atomico da un nodo all’altro, utilizzando il formato AOF (Append-Only File). Questo formato consente di inviare singoli elementi di una collezione invece dell’intera chiave, evitando picchi di latenza durante l’elaborazione di grandi collezioni. La nuova migrazione atomica degli slot non migra direttamente le chiavi: la sequenza “sposta-poi-elimina” viene applicata all’intero slot, e il nodo originale mantiene tutti i dati fino al completamento della migrazione, evitando i problemi di reindirizzamento o i tentativi ripetuti presenti nelle versioni precedenti di Valkey.

Per approfondire, è possibile consultare la registrazione della conferenza (per chi non ha dimestichezza con l’inglese può attivare i sottotitoli e la loro traduzione automatica):

Demystifying Valkey Clustering: Architecture, Fault Tolerance, and Scalability – Harkrishn Patro

Scadenza dei campi nelle strutture hash

Il tipo di dato hash consente di raggruppare più campi sotto una singola chiave. Tuttavia, nelle versioni precedenti a Valkey 9.0, la scadenza dei dati era un’operazione “tutto o niente”: non era possibile far scadere singoli campi all’interno di una struttura hash. Questo limite costringeva gli utenti a ricorrere a soluzioni alternative, come l’utilizzo di più chiavi, aumentando la complessità e l’occupazione di memoria.

Valkey 9.0 risolve questo problema introducendo nuovi comandi che permettono di impostare la scadenza su singoli campi di una struttura hash. Per maggiori dettagli, è possibile leggere l’approfondimento di Ran Shidlansik.

Database numerati in modalità cluster

I database numerati permettono di separare i dati ed evitare conflitti tra nomi di chiavi: ogni database contiene chiavi univoche al suo interno. Questa funzionalità risale alle prime versioni del progetto originale, ma fino a Valkey 9.0 era fortemente limitata in modalità cluster, dove era possibile utilizzare solo un singolo database (db 0). Senza il supporto al clustering, l’utilizzo dei database numerati era sconsigliato, poiché limitava la scalabilità a un singolo nodo.

Grazie ai feedback degli utenti e a una rivalutazione da parte del team di sviluppo, Valkey 9.0 introduce il supporto completo ai database numerati in modalità cluster, aprendo la strada a numerosi casi d’uso e a caratteristiche di clustering avanzate. Per saperne di più, è possibile consultare l’articolo dedicato a questa funzionalità.

Altre novità e miglioramenti

Valkey 9.0 introduce numerose piccole modifiche e ottimizzazioni, tra cui:

  • 1 miliardo di richieste al secondo con cluster di grandi dimensioni: Miglioramenti nella resilienza dei cluster, che consentono di scalare fino a 2.000 nodi e raggiungere oltre 1 miliardo di richieste al secondo.
  • Prefetching della memoria in pipeline: Ottimizzazione che consente un aumento del throughput fino al 40%.
  • Ripristino di comandi precedentemente deprecati: Valkey ha rivalutato 25 comandi precedentemente deprecati e, in ottica di compatibilità all’indietro, ne ha ripristinato l’utilizzo consigliato.
  • Risposte a copia zero: Le richieste di grandi dimensioni evitano la copia interna della memoria, con un aumento del throughput fino al 20%.
  • Supporto a Multipath TCP: Riduce la latenza fino al 25%.
  • Ottimizzazioni SIMD per BITCOUNT e HyperLogLog: Aumento del throughput fino al 200%.
  • Ricerca geospaziale per poligono: Consente di interrogare le posizioni in base a un poligono specificato.
  • Cancellazione condizionale: Introduce il comando DELIFEQ, che elimina una chiave solo se il suo valore è uguale a un valore specificato.
  • Filtraggio della lista client: Opzioni per filtrare il comando CLIENT LIST utilizzando flag, nome, tempo di inattività, nome/versione della libreria, database, indirizzo IP e capacità.

Infine, Valkey 9.0 introduce un nuovo comando LOLWUT, che genera un’opera d’arte algoritmica dedicata alla versione 9.

Scaricare e usare Valkey 9.0

È possibile scaricare la nuova versione come binario o container.

Sebbene Valkey distribuisca binari precompilati per le architetture arm64 e x86_64, questi sono ottimizzati per versioni specifiche di Ubuntu, come jammy o noble, e potrebbero non essere pienamente compatibili con altre distribuzioni GNU/Linux come Fedora o Arch Linux, a causa delle differenze nelle librerie di sistema e nei meccanismi di pacchettizzazione. In questi casi, è consigliabile attendere il rilascio ufficiale di Valkey nei repository software della propria distribuzione, così da garantire un’integrazione corretta e sicura con l’ambiente nativo. Chi ha familiarità con la compilazione può invece scaricare il codice sorgente dal repository software del progetto e costruire Valkey localmente, adattandola al proprio sistema e alle librerie disponibili. Questa modalità consente di sfruttare appieno le potenzialità del database, mantenendo al contempo la coerenza con le configurazioni della distribuzione in uso e assicurando prestazioni elevate e stabilità operativa.

Valkey 9.0 è il risultato della collaborazione di decine di contributori. Per domande o segnalazioni di bug, è possibile aprire una discussione su GitHub o contattare il team tramite Slack.

Per maggiori informazioni leggere l’annuncio ufficiale del rilascio di Valkey 9.0 sul blog del progetto.

Fonte: https://valkey.io/blog/introducing-valkey-9/
Fonte: https://www.phoronix.com/news/Valkey-9.0-Released
Fonte: https://www.linuxfoundation.org/press/valkey-9.0-delivers-performance-and-resiliency-for-real-time-workloads
Fonte: https://linuxiac.com/valkey-9-0-in-memory-data-store-brings-atomic-slot-migrations/

Visited 77 times, 1 visit(s) today
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.