Dragonfly, projekt, který tvrdí, že je rychlejší náhradou za Redis a Memcached

Zpráva byla zveřejněna, že první verze je již k dispozici systém ukládání dat do paměti Dragonfly, která poskytuje podporu pro protokoly Memcached a Redis, ale umožňuje spouštět dotazy s mnohem vyšším výkonem a menší spotřebou paměti.

Systém zpracovává data ve formátu klíč/hodnota a lze jej použít jako odlehčené řešení pro zrychlení silně zatížených stránek, ukládání pomalých dotazů do mezipaměti v DBMS a ukládání mezilehlých dat do paměti RAM.

BSL byl navržen spoluzakladateli MySQL jako alternativa k modelu Open Core. Podstatou BSL je to, že kód rozšířené funkčnosti je zpočátku k dispozici pro úpravy, ale po určitou dobu jej lze zdarma používat pouze za podmínek, které vyžadují zakoupení komerční licence.

Dodatečné licenční podmínky projektu Dragonfly vyžadují, aby byl kód převeden na licenci Apache 2.0 až 1. června 2027. Do té doby licence umožňuje použití kódu pouze pro zajištění provozu jeho služeb a produktů, ale zakazuje použití k vytváření placených cloudových služeb, které fungují jako doplněk k Dragonfly.

Dragonfly tvrdí, že je nejrychlejším systémem pro ukládání paměti na světě, podle vývojářů a benchmarků. V porovnání s Redis dosáhl Dragonfly 25x zvýšení výkonu a 3x snížení spotřeby paměti při typické pracovní zátěži. Jediný server Dragonfly dokáže zpracovat miliony požadavků za sekundu, například v prostředí Amazon EC2 c6gn.16xlarge bylo dosaženo propustnosti 3,8 milionu požadavků za sekundu.

V testech 5GB úložiště potřeboval Dragonfly o 30 % méně paměti než Redis. Během vytváření snímků pomocí příkazu „bgsave“ se spotřeba paměti zvyšuje, ale ve špičce se udržuje téměř třikrát méně než v Redis a samotná operace zápisu snímku je mnohem rychlejší (v testu zapisoval snímek v Vážka za 30 sekund a Redis - za 42 sekund).

Vysoký výkon je dosažen díky vícevláknové architektuře žádné sdílené zdroje ( shared-nothing ), což znamená, že ke každému vláknu je připojen samostatný a nezávislý řadič s vlastní částí dat, který funguje bez mutexů nebo spin-locků. Lehké zámky VLL se používají k zajištění atomicity při manipulaci s více klíči. Pro efektivní ukládání informací do paměti se používá struktura dashtable, která implementuje jakési rozdělené hashovací tabulky.

Z funkcí dostupných v první verze zdůrazňuje podporu protokolu RESP2 a 130 příkazů Redis, což zhruba odpovídá funkčnosti vydání Redis 2.8.

Navíc, Dragonfly podporuje všechny příkazy Memcached kromě CAS (verify and set), poskytuje podporu pro asynchronní operace pro vytváření snímků, poskytuje předvídatelnou spotřebu paměti, poskytuje vestavěný interpret Lua 5.4 a podporuje komplexní datové typy, jako jsou hash, sady a seznamy (ZSET, HSET, LIST, SETS a STRING).

Samostatně je k dispozici režim ukládání do mezipaměti, ve kterém jsou stará data po vyčerpání volné paměti automaticky nahrazena novými daty. Je možné odkazovat na data pro život, během kterého jsou data považována za relevantní.

Stav úložiště lze vyprázdnit na disk na pozadí pro pozdější obnovení po restartu. Pro správu systému je k dispozici konzola HTTP (spojení s portem TCP 6379) a rozhraní API pro návrat metrik kompatibilních s Prometheus. V budoucích verzích plánujeme rozšířit podporu pro příkazy Redis a implementovat schopnost replikovat úložiště pro převzetí služeb při selhání a vyrovnávání zátěže.

A konečně, pokud se o tom chcete dozvědět více, měli byste vědět, že kód Dragonfly je napsán v C/C++ a je distribuován pod licencí BSL (Business Source License).

O projektu se můžete poradit Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.