مجتمع فالكي объявило о выпуске فالكي 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.Database-level ACL.
Добавлена система контроля доступа на уровне отдельных баз данных. Это позволяет тоньше разделять права в многопользовательских конфигурациях и не ограничиваться только глобальными правилами доступа на уровне всего экземпляра Valkey.Автоматическая перезагрузка TLS-сертификатов.
Valkey 9.1 получил поддержку автоматической перезагрузки TLS-сертификатов. Для администраторов это означает меньше ручных операций при ротации сертификатов и более удобную эксплуатацию защищённых инсталляций.Новая команда HGETDEL.
Команда атомарно получает и удаляет одно или несколько полей из hash-структуры. Практический смысл — сценарии, похожие на очередь или одноразовое потребление данных, где раньше приходилось комбинировать HGET и HDEL через транзакцию.Новая команда MSETEX.
MSETEX позволяет одной командой установить несколько ключей с общим временем жизни. Раньше для такого сценария требовались несколько вызовов SETEX либо связка SET и EXPIRE через pipeline. Новая команда уменьшает число обращений и упрощает типичный код для сессионных и временных данных.Новая команда CLUSTERSCAN.
В кластерах появилась единая команда для сканирования ключей по всем узлам. Раньше клиентам приходилось самостоятельно выполнять SCAN на каждом узле и объединять результаты. CLUSTERSCAN упрощает клиентские библиотеки, админские инструменты и эксплуатационные задачи вроде поиска ключей по шаблону или типу во всём кластере.Оптимизация потребления памяти строками.
За счёт внутренних оптимизаций указателей для строк короче 128 байт заявлено снижение потребления памяти до 20%. Это особенно важно для типичных кэширующих нагрузок, где хранится большое количество небольших значений.Меньше памяти для sorted sets.
Оптимизации skiplist-структур уменьшают расход памяти для sorted set до 10%. Дополнительно ускорены операции над отсортированными множествами, включая запросы вроде ZRANGEBYSCORE и ZRANGEBYLEX.Ускоренная работа с rehashing.
Внутреннее перераспределение hash-таблиц, которое часто проявляется при росте keyspace, оптимизировано так, чтобы уменьшить задержки. В release notes также упомянуто снижение 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 base file. Это должно снизить лишнюю нагрузку при развёртывании реплик.Улучшения 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 9.1 — заметное обновление с точки зрения эксплуатации: меньше памяти на типичных структурах, меньше задержек при внутренних перестроениях, новые команды для кластеров и временных данных, а также более аккуратная модель безопасности для production-инсталляций.
المصدر: linux.org.ru
