Byl vydán Dragonfly 1.0, systému pro kešování dat v operační paměti

Proběhl release systému cache a ukládání dat v paměti Dragonfly, který manipuluje s daty ve formátu klíč/hodnota a může být použit jako lehké řešení pro zvýšení výkonu vysoce zatížených webů, cacheující pomalé dotazy na SGBD a mezidatové struktury v paměti. Dragonfly podporuje protokoly Memcached a Redis, což umožňuje používat již existující klientské knihovny a bez přepracování kódu převést na Dragonfly projekty využívající Memcached a Redis.

Ve srovnání s Redis dokázal Dragonfly při typických typech zátěže v prostředí Amazon EC2 c6gn.16xlarge dosáhnout 25násobného zvýšení výkonu (3,8 milionu dotazů za sekundu). Ve srovnání s Memcached v AWS prostředí c6gn.16xlarge dokázal Dragonfly vykonat 4,7krát více zapisovacích dotazů za sekundu (3,8 milionu oproti 806 tisícům) a 1,77krát více čtecích dotazů za sekundu (3,7 milionu oproti 2,1 milionu).

Byl vydán Dragonfly 1.0, systému pro kešování dat v operační paměti

V testech na ukládání 5 GB dat vyžadoval Dragonfly o 30 % méně paměti než Redis. Během vytváření snapshotů příkazem 'bgsave' vzrůstá spotřeba paměti, ale v peakových chvílích zůstávala téměř třikrát menší než u Redis, a sama operace zápisu snapshotu probíhá výrazně rychleji (v testu byl snapshot v Dragonfly zapsán za 30 sekund, zatímco Redis za 42 sekund).

Byl vydán Dragonfly 1.0, systému pro kešování dat v operační paměti

Vysoký výkon je dosažen díky vícestupňové architektuře bez sdílení zdrojů (shared-nothing), což znamená, že každému vláknu je přiřazen samostatný nezávislý zpracovatel se svou porcí dat, který pracuje bez mutexů a spin-zámků. Pro zajištění atomárnosti při práci s několika klíči se používají lehké zámky VLL. Pro efektivní ukládání informací v paměti se používá struktura dashtable, která implementuje variantu segmentovaných hash tabulek.

Některé funkce Dragonfly:

  • Režim cache, který automaticky zajišťuje nahrazení starých dat novými po vyčerpání volné paměti.
  • Podpora vázání k životnosti dat, během které jsou data považována za aktuální.
  • Podpora ukládání stavu úložiště na disk na pozadí pro následné obnovení po restartu.
  • Existence HTTP konzole (připojena k TCP portu 6379) pro správu systému a API pro poskytování metrik, kompatibilní s Prometheus.
  • Podpora 185 příkazů Redis, což přibližně odpovídá funkčnosti vydání Redis 5.
  • Podpora všech příkazů Memcached kromě CAS (check-and-set).
  • Podpora asynchronních operací pro vytváření snapshotů.
  • Předvídatelná spotřeba paměti.
  • Vestavěný interpreter Lua 5.4.
  • Podpora složených typů dat, jako jsou hashe, množiny, seznamy (ZSET, HSET, LIST, SETS a STRING) a data ve formátu JSON.
  • Podpora replikace úložiště pro zajištění vysoké dostupnosti a vyvažování zátěže.

Kód Dragonfly je napsán v jazycích C/C++ a je distribuován pod licencí BSL (Business Source License). Licence BSL byla navržena spoluzakladateli MySQL jako alternativa k modelu Open Core. Podstatou BSL je, že kód rozšířené funkčnosti je zpočátku dostupný k úpravám, ale po určitou dobu může být používán zdarma pouze za splnění dalších podmínek, pro jejichž obejití je nutné zakoupit komerční licenci. Další licenční podmínky projektu Dragonfly předepisují převod kódu na licenci Apache 2.0 k 15. březnu 2028. Do té doby licence povoluje používání kódu pouze pro zajištění provozu vlastních služeb a produktů, ale zakazuje jeho použití pro vytváření placených cloudových služeb, které by byly nadstavbou nad Dragonfly.

Verze Dragonfly 1.0 se vyznačuje implementací podpory replikace dat z primárního serveru na sekundární. Přitom lze Dragonfly nakonfigurovat pro použití jako sekundární úložiště, které přijímá data z primárního serveru jak na bázi Dragonfly, tak na bázi Redis. API pro správu replikace je kompatibilní s Redis a je založeno na použití příkazů ROLE a REPLICAOF (SLAVEOF).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster