Dragonfly, ett RAM-datacachesystem

Trollslända

Dragonfly är ett datalager i minnet byggt för moderna applikationsarbetsbelastningar.

För några dagar sedan meddelades det släpper Dragonfly in-memory caching och datalagringssystem, som manipulerar data i nyckel/värde-format och kan användas som en lättviktslösning för att snabba upp högbelastningsplatser genom att cachelagra långsamma frågor till DBMS och mellanliggande data i RAM.

Trollslända stöder Memcached och Redis-protokoll, så att du kan använda befintliga klientbibliotek och portprojekt med Memcached och Redis till Dragonfly utan att behöva omarbeta din kod.

Det är värt att nämna att Dragonfly fick nyligen en uppdatering, nå sin version 1.0 och i vilken utmärker sig för implementeringen av stöd för datareplikering från primär till sekundär server.

Samtidigt Dragonfly kan konfigureras för att användas som sekundär lagring som accepterar data från huvudservern baserad på Dragonfly och Redis. Replikeringshanterings-API:et är kompatibelt med Redis och är baserat på användningen av kommandona ROLE och REPLICAOF (SLAVEOF).

Om Dragonfly

Hög prestanda uppnås tack vare en flertrådig arkitektur utan att dela resurser (shared-nothing), vilket innebär att en separat kontroller kopplas till varje tråd med sin egen databit, som fungerar utan mutex eller spin-locks.

Lättvikts VLL-lås används för att garantera atomicitet vid hantering av flera nycklar, eftersom för att lagra informationen effektivt i minnet används dashtable-strukturen, som implementerar ett slags partitionerade hashtabeller.

Jämfört med Redis har Dragonfly en 25x prestandaökning (3,8 miljoner förfrågningar per sekund) under typiska arbetsbelastningar i en Amazon EC2 c6gn.16xlarge-miljö. Jämfört med Memcached i en AWS c6gn.16xlarge-miljö kunde Dragonfly slutföra 4,7 gånger fler skrivförfrågningar per sekund (3,8 miljoner mot 806k) och 1,77 gånger fler läsbegäranden per sekund (3,7 miljoner mot 2,1 miljoner).

I 5 GB lagringstester, Dragonfly krävde 30 % mindre minne än Redis. Under skapande av ögonblicksbilder med kommandot "bgsave" ökar minnesförbrukningen, men vid topptider hölls den nästan tre gånger mindre än i Redis, och själva skrivoperationen för ögonblicksbilder är mycket snabbare (i fallet med Redis). test, a ögonblicksbild skrevs på Dragonfly på 30 sekunder, och Redis – på 42 sekunder).

Några Dragonfly funktioner är:

  • Ett cachningsläge som automatiskt ersätter gammal data med ny data när ledigt minne är tömt.
  • Stöd för databindningslivscykler under vilka data anses vara uppdaterade.
  • Stöd för att spola lagringstillstånd till disk i bakgrunden för senare återställning efter en omstart.
  • Närvaron av en HTTP-konsol (binder till TCP-port 6379) för systemhantering och ett API för att returnera mätvärden, kompatibel med Prometheus.
  • Stöd för 185 Redis-kommandon, ungefär motsvarande funktionaliteten i Redis 5-versionen.
  • Stöd för alla Memcached-kommandon utom CAS (verifiera och konfigurera).
  • Stöd för asynkrona operationer för att skapa ögonblicksbilder.
  • Förutsägbar minnesförbrukning.
  • Integrerad Lua-tolk 5.4.
  • Stöd för komplexa datatyper som hash, uppsättningar, listor (ZSET, HSET, LIST, SETS och STRING) och JSON-data.
  • Lagringsreplikeringsstöd för failover och lastbalansering.

För de som är intresserade av Dragonfly-koden bör du veta att detta är skriven i C/C++ och distribueras under licensen BSL . Kärnan i BSL är att den utökade funktionalitetskoden initialt är tillgänglig för modifiering, men under en tid kan den användas gratis endast under förutsättning att ytterligare villkor kräver köp av en kommersiell licens för att kringgå.

Dragonfly-projektets ytterligare licensvillkor kräver att koden migreras till Apache License 2.0 den 15 mars 2028. Tills dess tillåter licensen användning av koden endast för att säkerställa driften av dess tjänster och produkter, men förbjuder användning för att skapa betalda molntjänster som fungerar som en plug-in till Dragonfly.

Slutligen om du är intresserad av att veta lite mer om detkan du kontrollera detaljerna i följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.