Dragonfly, egy projekt, amely állítólag a Redis és a Memcached gyorsabb helyettesítője

Kiadták a hírt, hogy az első verzió már elérhető memórián belüli adatgyorsítótár rendszer Dragonfly, amely támogatja a Memcached és a Redis protokollokat, de lehetővé teszi a lekérdezések sokkal nagyobb teljesítménnyel és kevesebb memóriafelhasználással történő futtatását.

A rendszer kulcs/érték formátumban kezeli az adatokat, és könnyű megoldásként használható az erősen terhelt helyek felgyorsítására, a lassú lekérdezések gyorsítótárazására a DBMS-ben és a közbenső adatok gyorsítótárazására a RAM-ban.

A BSL a MySQL társalapítói javasolták az Open Core modell alternatívájaként. A BSL lényege, hogy a kibővített funkcionalitás kódja kezdetben módosítható, de egy ideig ingyenesen csak további feltételek mellett használható, amelyek megkerüléséhez kereskedelmi licenc vásárlása szükséges.

A Dragonfly projekt további licencfeltételei megkövetelik, hogy a kódot csak 2.0. június 1-jével konvertálják Apache 2027 licencre, addig a licenc csak a szolgáltatásai és termékei működésének biztosítására teszi lehetővé a kód használatát, de megtiltja a használatát olyan fizetős felhőszolgáltatások létrehozására, amelyek a Dragonfly kiegészítőjeként működnek.

Szitakötő azt állítja, hogy a világ leggyorsabb memóriatároló rendszere, a fejlesztők és a benchmarkok szerint. Redishez képest a Dragonfly 25-szörös teljesítménynövekedést ért el és a memóriafelhasználás háromszoros csökkenése tipikus munkaterhelés mellett. Egyetlen Dragonfly szerver több millió kérést képes feldolgozni másodpercenként, például egy Amazon EC3 c2gn.6xlarge környezetben másodpercenként 16 millió kérés átviteli sebességet értek el.

Az 5 GB-os tárolási tesztekben a Dragonfly 30%-kal kevesebb memóriát igényelt, mint a Redis. A "bgsave" paranccsal pillanatképek készítése során megnő a memóriafogyasztás, de csúcsidőben majdnem háromszor kevesebbet tartanak fenn, mint a Redisben, és maga a pillanatkép írási művelet is sokkal gyorsabb (a tesztben pillanatképet írt Dragonfly 30 másodperc alatt, Redis pedig 42 másodperc alatt).

A nagy teljesítmény a többszálas architektúrának köszönhetően érhető el nincs megosztott erőforrás ( share-nothing ), ami azt jelenti, hogy minden egyes szálhoz külön és független, saját adatdarabokkal rendelkező vezérlő van csatolva, amely mutexek és spin-lockok nélkül működik. Könnyű VLL zárak használatosak, hogy biztosítsák az atomitást, ha több kulccsal dolgoznak. Az információk hatékony memóriában való tárolására a dashtable struktúrát használják, amely egyfajta particionált hash táblákat valósít meg.

Az elérhető funkciók közül az első verzió kiemeli a RESP2 protokoll és 130 Redis parancs támogatását, ami nagyjából megfelel a Redis 2.8-as kiadás funkcionalitásának.

Ezen túlmenően, A Dragonfly az összes Memcached parancsot támogatja, kivéve a CAS-t (ellenőrzés és beállítás), támogatja az aszinkron műveleteket pillanatképek készítéséhez, kiszámítható memóriafelhasználást biztosít, beépített Lua 5.4 értelmezőt biztosít, és támogatja az összetett adattípusokat, például a hash-eket, készleteket és listákat (ZSET, HSET, LIST, SETS és STRING).

Külön is elérhető a gyorsítótárazási mód, amelyben a régi adatok automatikusan új adatokra cserélődnek, ha a szabad memória kimerül. Lehetőség van az adatokhoz olyan élethosszig tartó hivatkozásra, amely során az adatokat relevánsnak tekintik.

A tárhely állapota a háttérben a lemezre üríthető az újraindítás utáni későbbi helyreállítás érdekében. A rendszer kezeléséhez egy HTTP-konzol (a 6379-es TCP-porthoz kötődik) és egy API áll rendelkezésre a Prometheus-kompatibilis metrikák visszaadásához. A jövőbeli kiadásokban a Redis-parancsok támogatásának bővítését tervezzük, és a feladatátvételhez és a terheléselosztáshoz való replikálási képességet is megvalósítjuk.

Végül, ha többet szeretne megtudni róla, tudnia kell, hogy a Dragonfly kód C/C++ nyelven íródott, és a BSL licenc (Business Source License) alatt kerül terjesztésre.

Konzultálhat a projekttel kapcsolatban A következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.