Valkey 8.1: Redis gaffel har ytelse, minneforbedringer og nye moduler

Valkey

Det er annonsert utgivelse av den nye versjonen av «Valkey 8.1», en gaffel av Redis som ble født etter overgangen til en proprietær lisens, og som søker å opprettholde den åpne filosofien til det originale prosjektet.

Valkey 8.1 Den har et stort antall forbedringer og endringer, hvis hovedfokus er på ytelsesoptimaliseringer som reduserer ventetiden, øker minneeffektiviteten og nye modulære muligheter.

Nye nøkkelfunksjoner i Valkey 8.1

A av de viktigste endringene i denne versjonen er fullstendig omskriving av hashtabellen, brukt i både nøkkelverdidatalagring og strukturerte datatyper som Hash, Set og Sorted Set. Takket være denne redesignen, En reduksjon i minnebruken er oppnådd: 20 byte mindre per nøkkel uten TTL, og opptil 30 byte hvis nøkkelen har en definert levetid. I tillegg har reduksjonen i tilfeldig minnetilgang ført til en ytelsesforbedring på 10 % i enkelttrådede I/O-miljøer.

En annen ny funksjon i Valkey 8.1 er at iterasjon over nøkler i operasjoner som KEYS-kommandoen eller Nøkkeloverføring mellom noder i en klynge har nå et forhåndslastesystem for cache, som gjør at neste nøkkel er tilgjengelig før behandlingen starter. Denne tilnærmingen har økt nøkkeloppslagshastigheten med 3,5 ganger ved å utnytte prosessorens cache bedre.

Multi-threaded I/O og TLS forbedringer

Valkey fortsetter overgangen til en flertråds I/O-modell. Nå, den TLS-tilkoblingsbehandling utføres i separate strømmer, som har tredoblet kapasiteten til å ta imot nye forbindelser. Funksjoner som SSL_pending() og ERR_clear_error() har også blitt isolert i separate tråder, noe som resulterer i en ytelsesøkning på 10 % for SET-operasjoner og en økning på 22 % for GET-operasjoner.

Replikering er forbedret, spesielt i miljøer med aktiv TLS, eliminerer redundante operasjoner som unødvendige kontrollsummer. Dette har resultert i en forbedring på 18 % i full synkronisering under diskløs replikering og en reduksjon på 47 % i kostnadene for kopierings- og skriveoperasjoner.

Optimaliseringer på bestilte sett og sannsynlighetstyper

El ZRANK kommando for bestilte sett er optimert og Det er nå 45 % raskere, mens ZADD har tatt i bruk SIMD-instruksjoner for å oppnå større effektivitet. For probabilistiske datatyper har bruken av HyperLogLog blitt forbedret til å bruke kun 12 KB fast minne, og bruken av AVX2-instruksjoner har gjort det mulig å multiplisere ytelsen til PFMERGE- og PFCOUNT-operasjoner med opptil 12 ganger, og BITCOUNT med opptil 5 ganger.

Uavbrutt aktiv defragmentering og mer kontroll over registre

El aktivt defragmenteringssystem har også blitt forbedret for å unngå blokkeringer eller forsinkelser. Nå varer hver defragmenteringssyklus bare 500 mikrosekunder, og en anti-sultstrategi er implementert for å hindre at disse oppgavene blir utsatt på grunn av langsiktige operasjoner.

Har blitt introdusert Nye konfigurasjonsalternativer for postformatering, inkludert tilpassede tidsformater og en ny COMMANDLOG-modus som logger lange forespørsler og svar. I tillegg er LATENCY LATEST-kommandoen utvidet med nye beregninger, noe som gir større innsyn i topp- og volumforsinkelser som er registrert.

Nye funksjoner, moduler og støtte

Valkey lar deg nå utføre SET IFEQ-operasjonen, som betinger skrivingen av en nøkkel til gjeldende verdi. Også Modulær støtte for skriptmotorer er introdusert, åpner muligheten for å bruke alternative språk til Lua gjennom tilpassede moduler.

I denne versjonen også flere moduler debuterer:

  • Søkemodul (Google): Søkemotor for vektorlikhet, ideell for maskinlæringstilfeller som krever lav ventetid og høy gjennomstrømning.
  • JSON-modul (AWS): tillater direkte manipulering av JSON-dokumentfragmenter, og unngÃ¥r fullstendig behandling av innholdet pÃ¥ klienten.
  • Bloom Filter Module (AWS): Implementering av Bloom-filtre, nyttig for Ã¥ bestemme mulig medlemskap av et element i et sett, med sannsynlighetseffektivitet

Til slutt, hvis du er interessert i å kunne vite mer om det, kan du se detaljene i følgende lenke.