Dragonfly: в 25 раз быстрее, чем Redis

Dragonfly — это замена Redis, обладающая высокой производительностью, низкой сложностью и способная масштабироваться. Это самое производительное хранилище данных в оперативной памяти.

Хотите достичь сверхзвуковой скорости при работе с вашим кластером Redis?

Что такое Dragonfly?

Dragonfly — это хранилище данных в оперативной памяти, которое полностью совместимо с API Redis и Memcached.

Это означает, что оно совместимо со всеми теми же SDK и инструментами, которые используется с Redis.

Это возможно, благодаря эффективному использованию многопоточности и использованию последних исследований — о которых мы поговорим позже. Разработчики Dragonfly смогли достичь в 25 раз более высокой производительности. Улучшенных показателей кэш-попаданий и снижения хвостовой задержки.

Dragonfly быстрее чем redis

Как это возможно?

Dragonfly начался как эксперимент в разработке хранилища данных в оперативной памяти в 2022 году. Команда исходила из своего опыта как пользователей хранилища в оперативной памяти и облачных инженеров. Предпочтение отдавалось двум ключевым характеристикам: атомарные гарантии для всех операций и низкая, субмиллисекундная задержка для высокой пропускной способности.

Для эффективного использования процессора, памяти и ввода-вывода на текущих облачных серверах была использована архитектура shared-nothing. Этот подход разбивает пространство ключей хранилища данных между потоками, каждый поток управляет своим собственным «шардом». Эту архитектуру shared-nothing поддерживает open-source библиотека для управления потоками и вводом-выводом.

Для многоключевых операций атомарные гарантии были достигнуты благодаря использованию последних академических исследований. Статья «VLL: пересмотр системы блокировок для систем баз данных в оперативной памяти» направляла разработку транзакционной структуры Dragonfly. Сочетание архитектуры shared-nothing и VLL позволяло создавать атомарные многоключевые операции без использования мьютексов или спинлоков, что выделяет Dragonfly среди других решений.

Второй вызов для команды заключался в создании более эффективных структур данных для нового хранилища. Основная структура хэш-таблицы была основана на статье «Dash: масштабируемое хэширование на постоянной памяти«. Несмотря на то, что изначально она была ориентирована на постоянную память, ее концепции были применимы к решению данной проблемы. Предложенный дизайн хэш-таблицы из статьи сохранял два важных свойства: инкрементальное хэширование при росте хранилища данных и возможность обхода словаря при изменениях с использованием безсостоянийской операции сканирования. Кроме того, Dash предлагал улучшенную эффективность процессора и памяти.

Что насчет будущего?

Dragonfly 1.0 — значимый этап, являющийся первым готовым к производству обновлением… Но это только начало.

Цель команды — дать возможность разработчикам и компаниям легко создавать быстрые и масштабируемые приложения. Проблемы остаются, и с помощью недавно привлеченных $21 млн они будут развивать Dragonfly, расширяя его область применения и обрабатывая большие рабочие нагрузки.

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

Dragonfly в долгосрочной перспективе может заменить Redis. Вероятно, сможет революционизировать решения для хранилища данных в оперативной памяти.

Он лучше в каждом сценарии: потребляет меньше памяти, имеет (гораздо) большую пропускную способность. И вскоре будет 100% совместим с существующими системами!


Опубликовано

в

от

Метки:

Комментарии

Добавить комментарий