Dragonfly, et projekt, der hævder at være den hurtigere erstatning for Redis og Memcached

Nyheden blev offentliggjort den første version er allerede tilgængelig datacachesystem i hukommelsen Dragonfly, som understøtter Memcached- og Redis-protokollerne, men det tillader forespørgsler at køre med meget højere ydeevne og mindre hukommelsesforbrug.

Systemet håndterer data i nøgle/værdi-format og kan bruges som en letvægtsløsning til at fremskynde stærkt belastede websteder, cache langsomme forespørgsler i DBMS og cache mellemliggende data i RAM.

BSL blev foreslået af medstifterne af MySQL som et alternativ til Open Core-modellen. Essensen af ​​BSL er, at den udvidede funktionalitetskode i første omgang er tilgængelig for ændring, men i nogen tid kan den kun bruges gratis under forudsætning af yderligere betingelser, som kræver køb af en kommerciel licens for at omgå.

De yderligere licensvilkår for Dragonfly-projektet kræver, at koden kun konverteres til Apache 2.0-licensen den 1. juni 2027. Indtil da tillader licensen kun brugen af ​​koden for at sikre driften af ​​dens tjenester og produkter, men forbyder brug til at oprette betalte cloud-tjenester, der fungerer som en tilføjelse til Dragonfly.

Guldsmed hævder at være verdens hurtigste hukommelseslagringssystem, ifølge udviklere og benchmarks. Sammenlignet med Redis opnåede Dragonfly en 25x ydelsesforøgelse og en 3x reduktion i hukommelsesforbrug under typiske arbejdsbelastninger. En enkelt Dragonfly-server kan behandle millioner af anmodninger i sekundet, f.eks. i et Amazon EC2 c6gn.16xlarge-miljø opnåedes en gennemstrømning på 3,8 millioner anmodninger i sekundet.

I 5 GB lagertests krævede Dragonfly 30 % mindre hukommelse end Redis. Under oprettelsen af ​​snapshots ved hjælp af kommandoen "bgsave" stiger hukommelsesforbruget, men i spidsbelastningsperioder opretholdes det næsten tre gange mindre end i Redis, og selve snapshot-skriveoperationen er meget hurtigere (i testen skrev et snapshot i Dragonfly på 30 sekunder, og Redis - på 42 sekunder).

Høj ydeevne opnås takket være en flertrådet arkitektur ingen delte ressourcer ( shared-nothing ), hvilket indebærer, at en separat og uafhængig controller med sit eget stykke data er knyttet til hver tråd, der arbejder uden mutexes eller spin-locks. Letvægts VLL-låse bruges til at sikre atomicitet, når der håndteres flere nøgler. For at gemme information effektivt i hukommelsen, bruges dashtable-strukturen, som implementerer en slags partitionerede hashtabeller.

Af de funktioner, der er tilgængelige i den første version fremhæver understøttelse af RESP2-protokollen og 130 Redis-kommandoer, hvilket nogenlunde svarer til funktionaliteten i Redis 2.8-udgivelsen.

Derudover Dragonfly understøtter alle Memcached-kommandoer undtagen CAS (bekræft og sæt), giver understøttelse af asynkrone operationer for at skabe snapshots, giver forudsigeligt hukommelsesforbrug, leverer en indbygget Lua 5.4-fortolker og understøtter komplekse datatyper såsom hashes, sæt og lister (ZSET, HSET, LIST, SETS og STRING).

Separat er en caching-tilstand tilgængelig, hvor gamle data automatisk erstattes af nye data, når den ledige hukommelse er opbrugt. Det er muligt at linke til de data for livet, hvor dataene anses for relevante.

Lagerstatus kan skylles til disk i baggrunden til senere gendannelse efter en genstart. For at administrere systemet leveres en HTTP-konsol (binder til TCP-port 6379) og en API til at returnere Prometheus-kompatible metrics. I fremtidige udgivelser planlægger vi at udvide understøttelsen af ​​Redis-kommandoer og implementere muligheden for at replikere lager til failover og belastningsbalancering.

Endelig, hvis du er interesseret i at lære mere om det, skal du vide, at Dragonfly-koden er skrevet i C/C++ og distribueres under BSL-licensen (Business Source License).

Du kan rådføre dig om projektet I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.