Valkey 8.1: форк Redis отличается производительностью, улучшениями памяти и новыми модулями

Валки

Было объявлено выпуск новой версии «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): Реализация фильтров Блума, полезных для определения возможной принадлежности элемента к набору, с вероятностной эффективностью

Наконец, если вы заинтересованы в том, чтобы узнать больше об этом, вы можете ознакомиться с подробностями в по следующей ссылке.