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

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

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

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

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

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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.