Valkey 8.1: Redis gaffel har prestanda, minnesförbättringar och nya moduler

Valkey

Det har aviserats release av den nya versionen av «Valkey 8.1», en gaffel av Redis som föddes efter övergången till en proprietär licens, och som försöker behålla den öppna filosofin i det ursprungliga projektet.

Valkey 8.1 Den innehåller ett stort antal förbättringar och ändringar, vars huvudfokus ligger på prestandaoptimeringar som minskar latensen, ökar minneseffektiviteten och nya modulära möjligheter.

Nya nyckelfunktioner i Valkey 8.1

EN av de viktigaste förändringarna i denna version är fullständig omskrivning av hashtabellen, används i både nyckel-värde datalagring och strukturerade datatyper som Hash, Set och Sorterad uppsättning. Tack vare denna omdesign, En minskning av minnesanvändningen har uppnåtts: 20 byte mindre per nyckel utan TTL, och upp till 30 byte om nyckeln har en definierad livslängd. Dessutom har minskningen av slumpmässig minnesåtkomst lett till en prestandaförbättring på 10 % i enkeltrådade I/O-miljöer.

En annan nyhet i Valkey 8.1 är att iteration över nycklar i operationer som kommandot KEYS eller Nyckelöverföring mellan noder i ett kluster har nu ett cache-förladdningssystem, vilket gör att nästa nyckel är tillgänglig innan bearbetningen börjar. Detta tillvägagångssätt har ökat nyckelsökningshastigheten med 3,5 gånger genom att bättre utnyttja processorcachen.

Flertrådiga I/O- och TLS-förbättringar

Valkey fortsätter sin övergång till en flertrådig I/O-modell. Nu, den TLS-anslutningsbearbetning utförs i separata strömmar, vilket har tredubblat kapaciteten att ta emot nya anslutningar. Funktioner som SSL_pending() och ERR_clear_error() har också isolerats i separata trådar, vilket resulterar i en prestandaökning på 10 % för SET-operationer och en ökning med 22 % för GET-operationer.

Replikeringen har förbättrats, speciellt i miljöer med aktiv TLS, eliminerar redundanta operationer som onödiga kontrollsummor. Detta har resulterat i en 18% förbättring av full synkronisering under disklös replikering och en 47% minskning av kostnaden för kopierings- och skrivoperationer.

Optimering av beställda set och probabilistiska typer

El ZRANK kommando för beställda set har optimerats och Det är nu 45 % snabbare, medan ZADD har antagit SIMD-instruktioner för att uppnå större effektivitet. För probabilistiska datatyper har användningen av HyperLogLog förbättrats för att använda endast 12 KB fast minne, och användningen av AVX2-instruktioner har gjort det möjligt att multiplicera prestandan för PFMERGE- och PFCOUNT-operationer med upp till 12 gånger och BITCOUNT med upp till 5 gånger.

Oavbruten aktiv defragmentering och mer kontroll över register

El aktivt defragmenteringssystem har också förbättrats för att undvika blockeringar eller förseningar. Nu varar varje defragmenteringscykel bara 500 mikrosekunder, och en anti-svältstrategi har implementerats för att förhindra att dessa uppgifter skjuts upp på grund av långvarig verksamhet.

Har introducerats Nya konfigurationsalternativ för postformatering, inklusive anpassade tidsformat och ett nytt COMMANDLOG-läge som loggar långa förfrågningar och svar. Dessutom har kommandot LATENCY LATEST utökats med nya mätvärden, vilket ger bättre överblick över inspelade topp- och volymlatenser.

Nya funktioner, moduler och support

Valkey låter dig nu utföra SET IFEQ-operationen, vilket villkorar skrivningen av en nyckel till det aktuella värdet. Också Modulärt stöd för skriptmotorer introduceras, öppnar möjligheten att använda alternativa språk till Lua genom anpassade moduler.

I den här versionen också flera moduler debuterar:

  • Sökmodul (Google): Sökmotor för vektorlikhet, idealisk för maskininlärningsfall som kräver låg latens och hög genomströmning.
  • JSON-modul (AWS): tillåter direkt manipulation av JSON-dokumentfragment och undviker fullständig bearbetning av innehållet på klienten.
  • Bloom Filter Module (AWS): Implementering av Bloom-filter, användbart för att bestämma eventuellt medlemskap av ett element i en uppsättning, med probabilistisk effektivitet

Slutligen, om du är intresserad av att kunna veta mer om det, kan du konsultera detaljerna i följande länk.