Dragonfly, ett projekt som påstår sig vara den snabbare ersättaren för Redis och Memcached

Nyheten släpptes att den första versionen är redan tillgänglig datacachesystem i minnet Dragonfly, som ger stöd för protokollen Memcached och Redis, men det gör att frågor kan köras med mycket högre prestanda och mindre minnesförbrukning.

Systemet hanterar data i nyckel/värde-format och kan användas som en lätt lösning för att snabba upp hårt belastade sajter, cache långsamma frågor i DBMS och cache mellanliggande data i RAM.

BSL föreslogs av medgrundarna av MySQL som ett alternativ till Open Core-modellen. 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 av ytterligare villkor, som kräver köp av en kommersiell licens för att kringgå.

De ytterligare licensvillkoren för Dragonfly-projektet kräver att koden konverteras till Apache 2.0-licensen endast den 1 juni 2027. Fram till 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 ett tillägg till Dragonfly.

Trollslända påstår sig vara världens snabbaste minneslagringssystem, enligt utvecklare och riktmärken. Jämfört med Redis uppnådde Dragonfly en prestandaökning på 25 gånger och en 3x minskning av minnesförbrukningen under typiska arbetsbelastningar. En enda Dragonfly-server kan behandla miljontals förfrågningar per sekund, till exempel, i en Amazon EC2 c6gn.16xlarge-miljö, uppnåddes en genomströmning på 3,8 miljoner förfrågningar per sekund.

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

Hög prestanda uppnås tack vare en flertrådig arkitektur inga delade resurser ( shared-nothing ), vilket innebär att en separat och oberoende kontroller med sin egen databit är kopplad till varje tråd och fungerar utan mutex eller spin-locks. Lättvikts VLL-lås används för att säkerställa atomicitet när man hanterar flera nycklar. För att lagra information effektivt i minnet används dashtable-strukturen, som implementerar ett slags partitionerade hashtabeller.

Av de funktioner som finns tillgängliga i den första versionen visar stöd för RESP2-protokollet och 130 Redis-kommandon, vilket ungefär motsvarar funktionaliteten i Redis 2.8-versionen.

Dessutom, Dragonfly stöder alla Memcached-kommandon utom CAS (verifiera och ställ in), ger stöd för asynkrona operationer för att skapa ögonblicksbilder, ger förutsägbar minnesförbrukning, tillhandahåller en inbyggd Lua 5.4-tolk och stöder komplexa datatyper som hash, uppsättningar och listor (ZSET, HSET, LIST, SETS , och STRING).

Separat finns ett cachningsläge tillgängligt, där gamla data automatiskt ersätts med nya data när ledigt minne är slut. Det är möjligt att länka till de uppgifter för livet under vilka uppgifterna anses relevanta.

Lagringsstatus kan spolas till disken i bakgrunden för senare återställning efter en omstart. För att hantera systemet tillhandahålls en HTTP-konsol (binder till TCP-port 6379) och ett API för att returnera Prometheus-kompatibla mätvärden. I framtida utgåvor planerar vi att utöka stödet för Redis-kommandon och implementera möjligheten att replikera lagring för failover och lastbalansering.

Slutligen, om du är intresserad av att lära dig mer om det, bör du veta att Dragonfly-koden är skriven i C/C++ och distribueras under BSL-licensen (Business Source License).

Du kan konsultera om projektet 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.