Общество Valkey обяви за пускането Valkey 9.1 — на новата стабилна версия на високо производително хранилище от тип „ключ-стойност“ с отворен код (лицензия BSD), което поддържа различни сценарии на употреба, като кеширане и опашки за съобщения, и може да действа като основна база данни. Проектът се поддържа от Linux Foundation, което гарантира неговата постоянна наличност в форма на отворен код.
Проектът е форк на Redis и е създаден след промени в лицензирането му.
Това издание включва нови функции, подобрения в сигурността, мониторинга, производителността и ефективността на инструментариума. В подготовката на релиза участваха над 80 души.
Основни промени
Lua е изнесен в отделен модул.
В Valkey 9.1 двигателят на скриптовете Lua е отделен от основния сървър и преместен в самостоятелен модул. Такова разделение намалява повърхността на атака на ядрото на Valkey и дава на администраторите възможност да деактивират напълно Lua, ако скриптовете на него не се използват. За да бъде по-лесно да се разбере кои скриптови двигатели са заредени в системата, командата INFO получи нова секция в отговора — Scripting Engines.Нови поправки за сигурност.
В стабилното издание 9.1.0 влязоха поправки на три уязвимости: use-after-free в механизма за отключване на клиента, неправилен достъп до паметта в командата 7RESTORE и use-after-free при пълна синхронизация по време на изпълнение на Lua/function-код с отстъпване на изпълнението. В бележките са посочени като CVE-2026-23479, CVE-2026-25243 и CVE-2026-23631.Контрол на достъпа на ниво база данни.
Добавена е система за контрол на достъпа на ниво отделни бази данни. Това позволява по-фино разделение на правата в многопотребителски конфигурации, а не да се ограничаваме само до глобалните правила за достъп на ниво целия екземпляр на Valkey.Автоматично презареждане на TLS сертификати.
Valkey 9.1 получи поддръжка за автоматично презареждане на TLS сертификати. За администраторите това означава по-малко ръчни операции при ротацията на сертификатите и по-удобна експлоатация на защитените инсталации.Нова команда HGETDEL.
Команда атомарно получава и изтрива едно или повече полета от хеш структура. Практически смисъл — сценарии, подобни на опашка или еднократно използване на данни, където по-рано е трябвало да се комбинират HGET и HDEL през транзакция.Нова команда MSETEX.
MSETEX позволява с една команда да се зададат множество ключове с общо време на живот. По-рано за такъв сценарий бяха необходими няколко извиквания на SETEX или комбинация от SET и EXPIRE през pipeline. Новата команда намалява броя на обажданията и опростява типичния код за сесийни и временни данни.Нова команда CLUSTERSCAN.
В кластерите е въведена единна команда за сканиране на ключове по всички възли. По-рано клиентите трябваше сами да извършват SCAN на всеки възел и да обединяват резултатите. CLUSTERSCAN опростява клиентските библиотеки, администраторските инструменти и експлоатационните задачи, като намиране на ключове по шаблон или тип в целия клъстер.Оптимизация на потреблението на памет от низове.
Благодарение на вътрешни оптимизации на указателите за низове под 128 байта е обявено намаление на потреблението на памет до 20%. Това е особено важно за типичните кеширащи натоварвания, където се съхранява голямо количество малки стойности.По-малко памет за sorted sets.
Оптимизациите на skiplist структурите намаляват разхода на памет за sorted set до 10%. Допълнително, операциите с отсортировани множества са ускорени, включително заявки като ZRANGEBYSCORE и ZRANGEBYLEX.Ускорена работа с rehashing.
Вътрешното преразпределение на хеш таблиците, което често се проявява при растеж на keyspace, е оптимизирано, за да намали закъсненията. В бележките за версията също е споменато намалението на latency spikes чрез incremental page release.Подобрена модел на I/O threading.
В релиз кандидата 9.1.0-rc2 е преработен моделът на взаимодействие на потоковете на входа и изхода с използване на lock-free queues. В бележките е посочено увеличение на пропускната способност с 8–17%.Ускорение на GET и SET.
Valkey сега по подразбиране използва апаратни часовници там, където е възможно, което намалява разходите за системни извиквания, свързани с времето. Проектът заявява повишение на производителността на GET и SET до 3% в цялост.По-бързи масови изтривания.
При операции като SREM, ZREM и HDEL Valkey сега временно спира вътрешната промяна на размерите на hash-таблиците, за да избегне излишно rehashing и да ускори масовото изтриване на елементи.По-ефективно създаване на реплики при AOF.
Когато се създава реплика с включен AOF, сега се повторно използва полученото RDB-файл вместо генериране на ново снимка за началния AOF базов файл. Това трябва да намали излишното натоварване при разгръщане на реплики.Подобрения в valkey-cli и valkey-benchmark.
В valkey-cli е добавена поддръжка за atomic slot migration чрез параметър —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 — забележително обновление що се отнася до експлоатацията: по-малко памет за типичните структури, по-ниски закъснения при вътрешни преструктурирания, нови команди за клъстери и времеви данни, както и по-прецизен модел за сигурност за production-инсталации.
Източник: linux.org.ru
