Проектът 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