Valkey 8.1: Революция в производительности и наблюдаемости


Valkey 8.1 представляет собой значительный шаг вперед в области in-memory хранилищ данных. Новая версия предлагает улучшения производительности, снижение задержек, повышение наблюдаемости и множество других функций, которые могут существенно повысить эффективность работы с данными. В статье рассмотрены ключевые нововведения и их влияние на работу систем.

Valkey 8.1: Революция в производительности и наблюдаемости

Сообщество разработчиков Valkey объявило о выпуске новой версии 8.1, которая обещает значительные улучшения в производительности, снижении задержек и повышении наблюдаемости. Эта версия, вышедшая спустя более чем полгода после предыдущей 8.0, предлагает множество новых функций и оптимизаций, которые могут существенно изменить подход к работе с данными.

Новый хэш-таблица: сердце Valkey 8.1

Одним из ключевых нововведений Valkey 8.1 является новая хэш-таблица, которая теперь служит основой для хранения ключ-значение и поддерживает типы данных Hash, Set и Sorted Set. Переписанная с использованием современных методов проектирования, эта хэш-таблица позволяет сократить количество выделений памяти и доступ к случайной памяти.

Первые наблюдения показывают, что новая хэш-таблица позволяет сэкономить примерно 20 байт на каждую пару ключ-значение без TTL и до 30 байт при включенном TTL. Кроме того, производительность при выполнении пакетных задач (при отключенном I/O потоковом режиме) увеличилась примерно на 10% по сравнению с Valkey 8.0.

Итератор предварительной загрузки: ускорение передачи данных

Еще одной важной особенностью Valkey 8.1 является итератор предварительной загрузки. Когда узел Valkey должен передать ключи и значения новому подключенному реплике, система теперь активно загружает соответствующие блоки и элементы в кэш процессора. По первоначальным измерениям, это ускоряет итерацию в 3,5 раза, что может значительно сократить время выполнения команд, таких как KEYS.

Кроме того, I/O потоки получили расширенные полномочия, что позволяет передавать больше задач - от обработки TLS-переговоров до чтения и записи потоков репликации - в пул I/O потоков. Это улучшение повышает скорость приема новых соединений, увеличивает пропускную способность для операций, таких как GET и SET, и ускоряет трафик репликации.

Улучшения репликации и дефрагментации

Valkey 8.1 также включает ряд улучшений в области репликации. Полные синхронизации с включенным TLS теперь выполняются на 18% быстрее, в основном благодаря удалению избыточных проверок CRC. Кроме того, нагрузка на память при копировании при запуске форка уменьшилась примерно на 47%.

Активная дефрагментация стала более предсказуемой: задержки свыше 1 мс были эффективно устранены, а время цикла дефрагментации сократилось до 500 микросекунд с более высокой частотой для поддержания низких задержек в хвосте распределения. Механизм анти-голодания гарантирует, что дефрагментация все еще достигает своих целей по использованию процессора, даже при выполнении длительных команд.

Повышение наблюдаемости

Наблюдаемость также получила тщательное внимание в Valkey 8.1. Новые опции формата логирования и стиля временных меток позволяют администраторам выбирать между устаревшими или структурированными форматами логов (logfmt) и среди различных представлений временных меток, таких как более современный ISO 8601.

Valkey 8.1 также вводит функцию COMMANDLOG, которая может записывать большие запросы и ответы, предлагая более детальный обзор задержек от начала до конца. Кроме того, встроенная система мониторинга задержек теперь сообщает не только о последних обнаруженных событиях задержек, но и о общих зарегистрированных задержках и количестве всплесков, предоставляя более ясное окно в частоту и влияние.

Дополнительные улучшения

Наконец, в Valkey 8.1 есть несколько других улучшений. Условные обновления с помощью SET IFEQ позволяют упростить операции, устраняя дополнительную логику на стороне клиента и накладные расходы на круговые запросы. Команда ZRANK была оптимизирована для лидербордов, иногда выполняясь на 45% быстрее.

Операции HyperLogLog получили 12-кратное увеличение скорости для слияний и подсчетов благодаря использованию Advanced Vector Extensions на x86, а BITCOUNT может увидеть потенциальное увеличение производительности более чем на 500% благодаря оптимизациям AVX2. Парсинг чисел с плавающей точкой в командах, таких как ZADD, также стал быстрее, хотя для этого требуется компилятор C++ с поддержкой SIMD-инструкций.

Для тех, кто ищет альтернативные решения для работы с данными, стоит обратить внимание на НайсОС - перспективный российский Linux-дистрибутив, который может стать отличной платформой для развертывания и использования Valkey 8.1.

Valkey 8.1 представляет собой значительный шаг вперед в области in-memory хранилищ данных. Новая версия предлагает улучшения производительности, снижение задержек, повышение наблюдаемости и множество других функций, которые могут существенно повысить эффективность работы с данными. Внедрение этих нововведений может стать ключевым фактором для компаний, стремящихся оптимизировать свои системы и повысить производительность.