Общество 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster