Lëshimi i parë i sistemit të caches së të dhënave në kujtesën e përkohshme Dragonfly është tani në dispozicion, duke ofruar mbështetje për protokollet Memcached dhe Redis, por duke mundësuar ekzekutimin e kërkesave me shumë më shumë performancë dhe me konsum më të ulët të memories. Sistemi manipulon të dhënat në formatin çelës/vlerë dhe mund të përdoret si një zgjidhje e lehtë për të përshpejtuar performancën e faqeve të ngarkohera, duke cache-uar kërkesat e ngadalta në DBMS dhe të dhënat ndërmjetëse në kujtesën e përkohshme. Kodi Dragonfly është shkruar në gjuhët C/C++ dhe shpërndahen nga licenca BSL (Business Source License).
Licenca BSL u propozuar nga bashkëthemeluesit e MySQL si një alternativë ndaj modelit Open Core. Thelbi i BSL është se kodi i funksionalitetit të avancuar është fillimisht i disponueshëm për modifikim, por për një periudhë të caktuar mund të përdoret falas vetëm nëse respektohen kushte shtesë, duke kërkuar një licencë komerciale për të shmangur këto kushte. Kushtet shtesë të licencës për projektin Dragonfly parashikojnë që kodi të kalojë në licencën Apache 2.0 vetëm më 1 qershor 2027. Deri në këtë kohë, licenca lejon përdorimin e kodit vetëm për sigurimin e funksionimit të shërbimeve dhe produkteve të tij, por ndalon përdorimin për të krijuar shërbime cloud të paguara, që veprojnë si një shtresë mbi Dragonfly.
Sipas zhvilluesve dhe testeve të demonstruara, Dragonfly pretendon titullin e sistemit më të shpejtë të ruajtjes në kujtesë. Krahasuar me Redis, në Dragonfly është arritur një rritje prej 25 herë në performancë dhe një ulje prej tre herë të konsumit të memories në lloje standarde ngarkesash. server Dragonfly mund të procesojë miliona kërkesa në sekondë; për shembull, në ambientin Amazon EC2 c6gn.16xlarge u arrit një performancë prej 3.8 milion kërkesash në sekondë.

Në testet e ruajtjes së 5 GB të dhënash, Dragonfly kërkoi 30% më pak memorie se sa Redis. Gjatë krijimit të snapshot-eve me komandën 'bgsave', konsumi i memories rritet, por në momentet kryesore mbetet pothuajse tri herë më i ulët se në Redis, dhe vetë operacioni i shkrimit të snapshot-it kryhet dukshëm më shpejt (në test, snapshoti në Dragonfly u ruajt për 30 sekonda, ndërsa në Redis - për 42 sekonda).

Performanca e lartë arrihet falë arkitekturës shumëprocesoresh pa ndarje burimesh (shared-nothing), e cila nënkupton se çdo proces i lidhur ka një përpunues të veçantë me pjesën e tij të të dhënave dhe punon pa mutex dhe bllokime spin. Për të garantuar atomikën gjatë punës me çelësa të shumtë, përdoren bllokime të lehta VLL. Për ruajtjen efikase të informacionit në memorie aplikohet struktura dashtable, e cila realizon një lloj tabelash hash të ndara.
Ndër funksionalitetet e disponueshme në lëshimin e parë përmendet mbështetje për protokollin RESP2 dhe 130 komanda Redis, që përkon me funksionalitetin e versionit Redis 2.8. Përveç kësaj, Dragonfly mbështet të gjitha komandat e memcached, përveç CAS (check-and-set), ofron mbështetje për operacione asinkrone për krijimin e snapshot-eve, siguron konsum të parashikueshëm të memories, siguron një interpretor të integruar Lua 5.4 dhe mbështet tipet e ngjashme të të dhënave, siç janë heshat, grumbujt dhe listat (ZSET, HSET, LIST, SETS dhe STRING).
Disponohet veçmas një mod i caches, ku automatikisht sigurohet zëvendësimi i të dhënave të vjetra me të reja pas shpenzimit të memories së lirë. është e mundur të mbetet një kohë e jetës për të dhënat, gjatë së cilës ato konsiderohen të vlefshme. Shteti i magazinës mund të rishkruhet në disk në sfond për rikthimin e mëvonshëm pas rinisjes. Për menaxhimin e sistemit ofrohet një konsolë HTTP (të lidhur me portin TCP 6379) dhe një API për dorëzimin e metrikave, e cila është e përputhshme me Prometheus. Në versionet e ardhshme planifikohet të zgjerohen mbështetja për komandat Redis dhe të realizohet mundësia e replikimit të magazinës për të siguruar qëndrueshmërinë dhe balancimin e ngarkesës.
Burimi: opennet.ru
