Dragonfly, проект, який стверджує, що є швидшою заміною Redis і Memcached

Про це оприлюднили новину перша версія вже доступна система кешування даних в пам'яті Dragonfly, який забезпечує підтримку протоколів Memcached і Redis, але це дозволяє виконувати запити з набагато вищою продуктивністю та меншим споживанням пам'яті.

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

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

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

Бабка заявляє, що є найшвидшою в світі системою зберігання пам'яті, відповідно до розробників і тестів. У порівнянні з Redis, Dragonfly досяг 25-кратного збільшення продуктивності і в 3 рази скорочується споживання пам'яті при типових робочих навантаженнях. Один сервер Dragonfly може обробляти мільйони запитів в секунду, наприклад, в середовищі Amazon EC2 c6gn.16xlarge була досягнута пропускна здатність 3,8 мільйона запитів в секунду.

У тестах пам’яті об’ємом 5 ГБ Dragonfly вимагало на 30% менше пам’яті, ніж Redis. Під час створення знімків за допомогою команди "bgsave" споживання пам'яті збільшується, але в пікові моменти воно підтримується майже втричі менше, ніж у Redis, а сама операція запису знімків відбувається набагато швидше (у тесті записав знімок у Dragonfly за 30 секунд, а Redis - за 42 секунди).

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

З функцій, доступних в перша версія підкреслює підтримку протоколу RESP2 і 130 команд Redis, що приблизно відповідає функціональності випуску Redis 2.8.

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

Окремо доступний режим кешування, в якому старі дані автоматично замінюються новими після вичерпання вільної пам’яті. Можливе посилання на дані для життя, протягом якого дані вважаються актуальними.

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

Нарешті, якщо вам цікаво дізнатися більше про це, вам слід знати, що код Dragonfly написаний на C/C++ і поширюється під ліцензією BSL (бізнес-ліцензія).

Ви можете отримати консультацію щодо проекту У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.