Vydanie Dragonfly 1.0, systému na cacheovanie dát v operačnej pamäti

Bol režim pre ukladanie a manipuláciu s dátami v pamäti nazvaný Dragonfly, ktorý operuje s dátami v formáte kľúč/hodnota a môže slúžiť ako ľahké riešenie na zrýchlenie výkonu webových stránok s vysokou záťažou, cache-ujúc pomalé dotazy k databázovému systému a medzi údaje v pamäti. Dragonfly podporuje protokoly Memcached a Redis, čo umožňuje používať existujúce klientské knižnice a bez prepracovania kódu presuniť projekty využívajúce Memcached a Redis na Dragonfly.

V porovnaní s Redis, Dragonfly dosiahol pri typických záťažiach v prostredí Amazon EC2 c6gn.16xlarge 25-násobné zvýšenie výkonu (3,8 milióna požiadaviek za sekundu). V porovnaní s Memcached v AWS prostredí c6gn.16xlarge sa Dragonfly podarilo vykonať 4,7-krát viac zápisových požiadaviek za sekundu (3,8 milióna oproti 806 tisícam) a 1,77-krát viac čítacích požiadaviek za sekundu (3,7 milióna oproti 2,1 milióna).

Vydanie Dragonfly 1.0, systému na cacheovanie dát v operačnej pamäti

V testoch na ukladanie 5 GB dát, Dragonfly si vyžiadal o 30% menej pamäte ako Redis. Počas vytvárania snapshotov pomocou príkazu "bgsave" sa spotreba pamäte zvyšuje, avšak v špičkových momentoch zostávala takmer trikrát nižšia ako v Redis, pričom samotná operácia zápisu snapshotu sa vykonáva oveľa rýchlejšie (v teste bol snapshot v Dragonfly zapísaný za 30 sekúnd, zatiaľ čo Redis za 42 sekúnd).

Vydanie Dragonfly 1.0, systému na cacheovanie dát v operačnej pamäti

Vysoký výkon je dosahovaný vďaka viacvláknovej architektúre bez zdieľania zdrojov (shared-nothing), čo znamená, že k každému vláknu je priradený samostatný izolovaný spracovateľ so svojou vlastnou sadou dát, pracujúci bez mutexov a spin-zámkov. Na zabezpečenie atomicity pri práci s viacerými kľúčmi sú používané ľahké zámky VLL. Na efektívne uchovávanie informácií v pamäti sa používa štruktúra dashtable, ktorá implementuje variáciu segmentovaných hash-tablíc.

Niektoré možnosti Dragonfly:

  • Režim cacheovania, v ktorom sa automaticky zabezpečuje vytláčanie starých dát novými po vyčerpaní voľnej pamäte.
  • Podpora viazanosti na životnosť dát, počas ktorej sú údaje považované za aktuálne.
  • Podpora pozadia pre obnovu stavu úložiska na disk pre následné obnovenie po reštarte.
  • Prítomnosť HTTP konzoly (priradená k TCP portu 6379) na správu systému a API na poskytovanie metrík, kompatibilné s Prometheus.
  • Podpora 185 príkazov Redis, čo približne zodpovedá funkčnosti vydania Redis 5.
  • Podpora všetkých príkazov Memcached okrem CAS (check-and-set).
  • Podpora asynchrónnych operácií pre vytváranie snapshotov.
  • Predvídateľná spotreba pamäte.
  • Vstavaný interpret Lua 5.4.
  • Podpora zložených typov dát, ako sú hashe, množiny, zoznamy (ZSET, HSET, LIST, SETS a STRING) a údaje vo formáte JSON.
  • Podpora replikácie úložiska pre zabezpečenie odolnosti voči poruchám a vyvažovania záťaže.

Kód Dragonfly je napísaný v jazykoch C/C++ a je distribuovaný pod licenciou BSL (Business Source License). Licenciu BSL navrhli spoluzakladatelia MySQL ako alternatívu k modelu Open Core. Podstatou BSL je, že kód rozšírenej funkčnosti je spočiatku dostupný na úpravy, avšak počas určitého obdobia môže byť používaný zadarmo iba za dodržania ďalších podmienok, pričom na obídenie týchto podmienok je potrebné zakúpenie komerčnej licencie. Ďalšie licenčné podmienky projektu Dragonfly predpisujú prevod kódu na licenciu Apache 2.0 15. marca 2028. Do tohto času licencie povoľuje používanie kódu iba na zabezpečenie prevádzky vlastných služieb a produktov, ale zakazuje použitie na vytváranie platených cloudových služieb, ktoré nadstavujú Dragonfly.

Verzia Dragonfly 1.0 je pozoruhodná realizáciou podpory replikácie dát z primárneho servera na sekundárny. Dragonfly sa pritom dá nastaviť na použitie ako sekundárne úložisko, ktoré prijíma dáta z primárneho servera buď na báze Dragonfly, alebo na báze Redis. API na správu replikácie je kompatibilné s Redis a je založené na použití príkazov ROLE a REPLICAOF (SLAVEOF).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster