Было объявлено выпуск новой версии «Valkey 8.1», форк Redis, появившийся после перехода на проприетарную лицензию и стремящийся сохранить открытую философию оригинального проекта.
Валки 8.1 В нем представлено большое количество улучшений и изменений, основное внимание уделяется оптимизации производительности, которая сокращает задержки, повышает эффективность памяти и предлагает новые модульные возможности.
Ключевые новые функции Valkey 8.1
Uno из самых значительных изменений в этой версии есть полная переписывание хэш-таблицы, используемый как в хранилище данных «ключ-значение», так и в структурированных типах данных, таких как хэш, набор и отсортированный набор. Благодаря этому редизайну, Достигнуто сокращение использования памяти: на 20 байт меньше на ключ без TTL, и до 30 байт, если ключ имеет определенный срок действия. Кроме того, сокращение произвольного доступа к памяти привело к повышению производительности на 10% в однопоточных средах ввода-вывода.
Еще одной новой функцией Valkey 8.1 является итерация по ключам в таких операциях, как команда KEYS или Передача ключей между узлами в кластере теперь включает систему предварительной загрузки кэша, что позволяет следующему ключу быть доступным до начала его обработки. Такой подход увеличил скорость поиска ключей в 3,5 раза за счет более эффективного использования кэша процессора.
Улучшения многопоточного ввода-вывода и TLS
Valkey продолжает переход к многопоточной модели ввода-вывода. Теперь, Обработка TLS-подключения выполняется в отдельных потоках., что утроило возможности приема новых подключений. Такие функции, как SSL_pending() и ERR_clear_error(), также были выделены в отдельные потоки, что привело к повышению производительности на 10% для операций SET и на 22% для операций GET.
Репликация была улучшена, особенно в средах с активным TLS, устраняя избыточные операции, такие как ненужные контрольные суммы. Это привело к улучшению полной синхронизации во время бездисковой репликации на 18% и снижению стоимости операций копирования и записи на 47%.
Оптимизации на упорядоченных множествах и вероятностных типах
El Команда ZRANK для упорядоченных наборов был оптимизирован и Теперь он на 45% быстрее, поскольку ZADD использует инструкции SIMD. для достижения большей эффективности. Для вероятностных типов данных использование HyperLogLog было улучшено и теперь использует всего 12 КБ фиксированной памяти, а использование инструкций AVX2 позволило увеличить производительность операций PFMERGE и PFCOUNT до 12 раз, а BITCOUNT — до 5 раз.
Непрерывная активная дефрагментация и больший контроль над реестрами
El Также была улучшена система активной дефрагментации. чтобы избежать задержек и блокировок. Теперь каждый цикл дефрагментации длится всего 500 микросекунд, и была реализована стратегия борьбы с голодом, чтобы не допустить откладывания этих задач из-за длительных операций.
Были введены Новые параметры конфигурации для форматирования записей, включая пользовательские форматы времени и новый режим COMMANDLOG, который регистрирует длинные запросы и ответы. Кроме того, команда LATENCY LATEST была расширена новыми метриками, обеспечивающими более наглядное представление зафиксированных пиковых и объемных задержек.
Новые функции, модули и поддержка
Валки теперь позволяет выполнять операцию SET IFEQ, что обуславливает запись ключа в текущее значение. Также Введена модульная поддержка скриптовых движков, открывая возможность использования альтернативных Lua языков посредством пользовательских модулей.
В этой версии также дебют нескольких модулей:
- Модуль поиска (Google): Система поиска векторного сходства, идеально подходящая для случаев машинного обучения, требующих малой задержки и высокой пропускной способности.
- Модуль JSON (AWS): позволяет напрямую манипулировать фрагментами документа JSON, избегая полной обработки содержимого на клиенте.
- Модуль фильтра Блума (AWS): Реализация фильтров Блума, полезных для определения возможной принадлежности элемента к набору, с вероятностной эффективностью
Наконец, если вы заинтересованы в том, чтобы узнать больше об этом, вы можете ознакомиться с подробностями в по следующей ссылке.