Проектът Dragonfly разработва по-бърза алтернатива на Redis и Memcached.

Достъпен е първият компонент на системата за кеширане на данни в оперативната памет Dragonfly, която поддържа протоколите Memcached и Redis, но позволява изпълняване на запитвания с много по-висока производителност и с по-ниска необходимост от памет. Системата манипулира данни форматирани като ключ/стойност и може да се използва като леко решение за ускоряване на работата на силно натоварени сайтове, кеширайки бавни запитвания към бази данни и междинни данни в оперативната памет. Кодът на Dragonfly е написан на езиците C/C++ и се разпространява под лицензия BSL (Business Source License).

Лицензията BSL бе предложена от съоснователите на MySQL като алтернатива на модела Open Core. Същността на BSL е, че кодът на разширената функционалност е първоначално достъпен за изменения, но в течение на определен период може да се използва безплатно само при спазване на допълнителни условия, заобикалянето на които изисква закупуване на търговска лицензия. Допълнителните лицензионни условия на проекта Dragonfly предписват прехвърлянето на кода под лицензия Apache 2.0 едва на 1 юни 2027 година. До този момент лицензията разрешава използването на кода само за осигуряване на работа на собствените услуги и продукти, но забранява приспособяването за създаване на платени облачни услуги, които да функционират като добавки над Dragonfly.

Според изявленията на разработчиците и демонстрираните тестове, Dragonfly претендира за титлата на най-бързата система за съхранение в паметта. В сравнение с Redis, в Dragonfly при типични натоварвания е постигнато 25-кратно увеличение на производителността и трикратен спад в потреблението на памет. сървър Dragonfly може да обработва милиони запитвания в секунда, например, в среда на Amazon EC2 c6gn.16xlarge е постигната производителност от 3.8 милиона запитвания в секунда.

Проектът Dragonfly разработва по-бърза алтернатива на Redis и Memcached.

В тестове за съхранение на 5 GB данни, Dragonfly изисква с 30% по-малко памет, отколкото Redis. По време на създаването на моментни снимки с командата „bgsave“, потреблението на памет нараства, но в пиковите моменти остава почти три пъти по-ниско от това на Redis, а операцията по запис на моментна снимка се изпълнява значително по-бързо (в теста моментната снимка в Dragonfly беше записана за 30 секунди, а в Redis — за 42 секунди).

Проектът Dragonfly разработва по-бърза алтернатива на Redis и Memcached.

Високата производителност се постига благодарение на многопоточната архитектура без споделени ресурси (shared-nothing), при която на всеки поток се привързва отделен независим обработчик с неговата част от данни, работещ без мютекси и spin-блокировки. За осигуряване на атомарност при работа с няколко ключа се използват леки блокировки VLL. За ефективно съхранение на информация в паметта се прилага структурата dashtable, реализираща разновидност на секционираните хеш-таблици.

От възможностите, налични в първото издание, се откроява поддръжката на протокола RESP2 и 130 команди Redis, което примерно отговаря на функционалността на версия Redis 2.8. Освен това, Dragonfly поддържа всички команди на memcached, с изключение на CAS (check-and-set), предлага поддръжка за асинхронни операции за създаване на моментни снимки, осигурява предсказуемо потребление на паметта, предлага вграден интерпретатор Lua 5.4 и подкрепя сложни типове данни, като хешове, множества и списъци (ZSET, HSET, LIST, SETS и STRING).

Отделно е наличен режим на кеширане, при който автоматично се осигурява изхвърляне на стари данни с нови след изчерпване на свободната памет. Възможна е свързаност с данните чрез срок на годност, в който данните се считат за актуални. Състоянието на хранилището може да бъде записано на диск на заден план за последващо възстановяване след рестартиране. За управление на системата се предоставя HTTP конзола (свързва се с TCP порта 6379) и API за отдаване на метрики, съвместим с Prometheus. В следващите версии е планирано разширяване на поддръжката на командите Redis и реализиране на възможността за репликация на хранилището за осигуряване на отказоустойчивост и балансиране на натоварването.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster