Dragonfly, проект, который утверждает, что является более быстрой заменой Redis и Memcached.

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

Система обрабатывает данные в формате ключ/значение и может использоваться как легковесное решение для ускорения работы сильно загруженных сайтов, кэширования медленных запросов в СУБД и кэширования промежуточных данных в оперативной памяти.

БСЛ был предложен соучредителями MySQL как альтернатива модели Open Core. Суть BSL заключается в том, что код расширенного функционала изначально доступен для модификации, но какое-то время его можно использовать бесплатно только при соблюдении дополнительных условий, для обхода которых требуется покупка коммерческой лицензии.

Дополнительные лицензионные условия проекта Dragonfly требуют, чтобы код был конвертирован в лицензию Apache 2.0 только 1 июня 2027 года. До этого времени лицензия позволяет использовать код только для обеспечения работы своих сервисов и продуктов, но запрещает использование для создания платных облачных сервисов, которые действуют как дополнение к Dragonfly.

Стрекоза претендует на звание самой быстрой в мире системы хранения данных, по данным разработчиков и бенчмарков. По сравнению с Redis, Dragonfly добился увеличения производительности в 25 раз. и трехкратное снижение потребления памяти при типичных рабочих нагрузках. Один сервер Dragonfly может обрабатывать миллионы запросов в секунду, например, в среде Amazon EC3 c2gn.6xlarge была достигнута пропускная способность 16 млн запросов в секунду.

В тестах хранилища объемом 5 ГБ Dragonfly требовалось на 30% меньше памяти, чем Redis.. При создании снэпшотов с помощью команды «bgsave» потребление памяти увеличивается, но в пиковые моменты поддерживается почти в три раза меньше, чем в Redis, а сама операция записи снэпшота проходит значительно быстрее (в тесте записывал снапшот в Dragonfly за 30 секунд, а Redis — за 42 секунды).

Высокая производительность достигается благодаря многопоточной архитектуре нет разделяемых ресурсов (shared-nothing), что подразумевает, что к каждому потоку прикрепляется отдельный и независимый контроллер со своей частью данных, работающий без мьютексов или спин-блокировок. Облегченные блокировки VLL используются для обеспечения атомарности при работе с несколькими ключами. Для эффективного хранения информации в памяти используется структура dashtable, которая реализует своего рода секционированные хеш-таблицы.

Из функций, доступных в в первой версии подчеркивается поддержка протокола RESP2 и 130 команд Redis., что примерно соответствует функционалу релиза Redis 2.8.

Кроме того, Dragonfly поддерживает все команды Memcached, кроме CAS. (проверить и установить), обеспечивает поддержку асинхронных операций для создания моментальных снимков, обеспечивает предсказуемое потребление памяти, предоставляет встроенный интерпретатор Lua 5.4 и поддерживает сложные типы данных, такие как хэши, наборы и списки (ZSET, HSET, LIST, SETS). и STRING).

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

Состояние хранилища можно сбросить на диск в фоновом режиме для последующего восстановления после перезагрузки. Для управления системой предоставляется HTTP-консоль (привязывается к TCP-порту 6379) и API для возврата метрик, совместимых с Prometheus. В будущих выпусках мы планируем расширить поддержку команд Redis и реализовать возможность репликации хранилища для отработки отказа и балансировки нагрузки.

Наконец, если вам интересно узнать об этом больше, вы должны знать, что код Dragonfly написан на C/C++ и распространяется под лицензией BSL (Business Source License).

Вы можете проконсультироваться по проекту По следующей ссылке.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.