Skupnost Valkey je oznanil izid Valkey 9.1 — nove stabilne različice visoko zmogljivega podatkovnega skladišča tipa „ključ-vrednost“ z odprtim izvorom (licenca BSD), ki podpira različne scenarije uporabe, kot so predpomnjenje in čakalne vrste, ter lahko deluje tudi kot primarna podatkovna baza. Projekt podpira Linux Foundation, kar zagotavlja njegovo stalno dostopnost v obliki odprtega izvornega kode.
Projekt je forka Redis in je bil ustvarjen po spremembah v njegovi licenci.
Ta različica vključuje nove funkcionalnosti, izboljšave na področju varnosti, nadzora, zmogljivosti in učinkovitosti orodij. V pripravi izdaje je sodelovalo več kot 80 oseb.
Glavne promene
Lua je bila prenesena v samostojni modul.
V Valkey 9.1 je motor skriptov Lua ločen od glavnega strežnika in prenesen v samostojni modul. Takšno ločevanje zmanjšuje površino za napade na jedro Valkey in omogoča skrbnikom, da popolnoma onemogočijo Lua, če skripti v njej niso uporabljeni. Da bi bilo lažje razumeti, kateri motorji skriptov so naloženi v sistemu, je ekipa INFO prejela nov razdelek odgovora — Scripting Engines.Nova varnostna popravila.
V stabilno različico 9.1.0 so vključene popravke treh ranljivosti: use-after-free v mehanizmu odklepanja odjemalca, nepravilni dostop do pomnilnika v ukazu 7RESTORE, ter use-after-free med popolno sinhronizacijo med izvajanjem Lua/function-kode s pooblastilom za izvajanje. V opombah so označene kot CVE-2026-23479, CVE-2026-25243 in CVE-2026-23631.Nadzor dostopa na ravni podatkovne baze.
Dodana je sistem nadzora dostopa na ravni posameznih podatkovnih baz. To omogoča natančnejše razdeljevanje pravic v večuporabniških konfiguracijah in ne omejuje na globalna pravila dostopa na ravni celotnega primerka Valkey.Samodejna ponastavitev TLS-certifikatov.
Valkey 9.1 je pridobil podporo za samodejno ponastavitev TLS-certifikatov. To pomeni manj ročnega dela za skrbnike pri rotaciji certifikatov in bolj enostavno upravljanje zaščitenih namestitev.Nova ukaz HGETDEL.
Ekipa atomarno pridobiva in briše eno ali več polj iz hash strukture. Praktični pomen - scenariji, podobni vrsti ali enkratni porabi podatkov, kjer je bilo prej potrebno kombinirati HGET in HDEL prek transakcije.Nova ukaz MSETEX.
MSETEX omogoča z enim ukazom nastavitev več ključev z skupnim časom življenja. Prej je bilo za takšen scenarij potrebno več klicev SETEX ali kombinacija SET in EXPIRE prek pipeline. Nova komanda zmanjšuje število klicev in poenostavlja tipično kodo za sejne in začasne podatke.Nova ukaz CLUSTERSCAN.
V grozdih je bila uvedena enotna komanda za skeniranje ključev po vseh vozliščih. Prej so morali uporabniki sami izvajati SCAN na vsakem vozlišču in združevati rezultate. CLUSTERSCAN poenostavi knjižnice za stranke, administrativna orodja in operativne naloge, kot je iskanje ključev po vzorcu ali tipu v celem grozdu.Optimizacija porabe pomnilnika s strunami.
Z notranjimi optimizacijami kazalcev za nizke dolžine pod 128 bajtov je bilo izjavljeno zmanjšanje porabe pomnilnika do 20 %. To je še posebej pomembno za tipične naloge predpomnjenja, kjer je shranjenih veliko majhnih vrednosti.Manj pomnilnika za sortiranih množic.
Optimizacije struktur skiplist zmanjšujejo porabo pomnilnika za sortirano množico do 10 %. Dodatno so pospešene operacije nad sortiranimi množicami, vključno z poizvedbami, kot sta ZRANGEBYSCORE in ZRANGEBYLEX.Pospešen delovni proces z rehashingom.
Notranje prerazporejanje hash tabel, ki se pogosto izraža ob rasti prostora ključev, je optimizirano za zmanjšanje latence. V opombah za izdajanje je prav tako omenjeno zmanjšanje latency spikes zaradi inkrementalnega sproščanja strani.Izboljšan model I/O threading.
V izdaji kandidata 9.1.0-rc2 je bil prenovljen model interakcije med vhodno-izhodnimi niti z uporabo lock-free queues. V opombah je omenjeno povečanje zmogljivosti za 8–17 %.Pospeševanje GET in SET.
Valkey zdaj po privzetku uporablja strojne ure, kjer je to možno, kar zmanjšuje preglavice pri sistemskih klicih, povezanih s časom. Projekt navaja povečanje zmogljivosti GET in SET do 3 % na splošno.Hitrejše množične izbrise.
При операциях таких как SREM, ZREM и HDEL Valkey теперь временно останавливает внутренние изменения размеров хэш-таблиц, чтобы избежать ненужного rehashing и ускорить массовое удаление элементов.Более эффективное создание реплик при AOF.
При создании реплики с включённым AOF теперь повторно используются полученные RDB-файлы вместо генерации нового снимка для начального AOF base file. Это должно снизить избыточную нагрузку при развертывании реплик.Улучшения valkey-cli и valkey-benchmark.
В valkey-cli добавлена поддержка атомарной миграции слотов через параметр —cluster-use-atomic-slot-migration для операций —cluster rebalance и —cluster reshard. В valkey-benchmark добавлен вывод распределения RPS, а также параметры —warmup и —duration, что делает тестирование производительности более управляемым.
Отдельно вместе с Valkey 9.1 в экосистеме продвигаются связанные проекты: Valkey Admin для визуального управления кластерами, Valkey Search 1.2 с полнотекстовым поиском, числовыми фильтрами, тегами и векторным поиском, а также клиентской библиотекой Valkey GLIDE.
Valkey 9.1 — значительное обновление с точки зрения эксплуатации: меньше памяти на типичных структурах, меньше задержек при внутренних перестроениях, новые команды для кластеров и временных данных, а также более тщательная модель безопасности для производственных установок.
Izvor: linux.org.ru
