Вышла новость, что первая версия уже доступна система кэширования данных в памяти 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).
Вы можете проконсультироваться по проекту По следующей ссылке.
Будьте первым, чтобы комментировать