Dragonfly-projektet tilbyder en hurtigere erstatning for Redis og Memcached

Den første version af datacaching-systemet i hukommelsen Dragonfly er tilgængelig og understøtter protokoller som Memcached og Redis, men gør det muligt at udføre forespørgsler med betydeligt højere ydeevne og lavere hukommelsesforbrug. Systemet arbejder med data i nøgle/værdi-format og kan anvendes som en letvægtsløsning til at accelerere ydeevnen på højbelastede websteder, ved at cache langsomme forespørgsler til DBMS og mellemliggende data i hukommelsen. Koden til Dragonfly er skrevet i C/C++ og distribueres under BSL (Business Source License).

BSL-licensen blev foreslået af medstifterne af MySQL som et alternativ til Open Core-modellen. Essensen af BSL er, at koden til den udvidede funktionalitet oprindeligt er tilgængelig for ændringer, men inden for en vis periode kun kan anvendes gratis under overholdelse af yderligere betingelser, som kræver køb af en kommerciel licens for at omgå dem. De yderligere licensbetingelser for Dragonfly-projektet foreskriver, at koden overgår til Apache 2.0-licens først den 1. juni 2027. Indtil da tillader licensen brug af koden kun til drift af egne tjenester og produkter, men forbyder anvendelse til at skabe betalte cloud-tjenester, der fungerer som et lag ovenpå Dragonfly.

Ifølge udviklernes erklæringer og demonstrerede tests hævder Dragonfly titlen som det hurtigste hukommelsessystem. I forhold til Redis har Dragonfly opnået en 25-foldig stigning i ydeevne og en tredobbelt reduktion i hukommelsesforbrug under typiske belastninger. server Dragonfly kan håndtere millioner af forespørgsler pr. sekund; for eksempel i et Amazon EC2 c6gn.16xlarge-miljø er det lykkedes at opnå en ydeevne på 3,8 millioner forespørgsler pr. sekund.

Dragonfly-projektet tilbyder en hurtigere erstatning for Redis og Memcached

I tests med lagring af 5 GB data krævede Dragonfly 30% mindre hukommelse end Redis. Under oprettelse af snapshots med kommandoen 'bgsave' stiger hukommelsesforbruget, men i peak-øjeblikke forbliver det næsten tre gange mindre end i Redis, mens selve snapshot-operationshastigheden er betydeligt hurtigere (i testen blev snapshot i Dragonfly gemt på 30 sekunder, mens Redis tog 42 sekunder).

Dragonfly-projektet tilbyder en hurtigere erstatning for Redis og Memcached

Høj ydeevne opnås gennem en multitrådede arkitektur uden ressourceopdeling (shared-nothing), hvilket indebærer, at hver tråd knyttes til en separat, isoleret behandler med sin egen datasæt, der arbejder uden mutexer og spin-låse. For at sikre atomaritet ved arbejde med flere nøgler anvendes letvægtslåsninger VLL. Til effektiv lagring af information i hukommelsen anvendes strukturen dashtable, der implementerer en type sektionerede hash-tabeller.

Blandt funktionerne, der er tilgængelige i den første udgave, er understøttelsen af RESP2-protokollen og 130 Redis-kommandoer, hvilket omtrent svarer til funktionaliteten af Redis 2.8-versionen. Derudover understøtter Dragonfly alle memcached-kommandoer undtagen CAS (check-and-set), giver support til asynkrone operationer for at skabe snapshots, sikrer forudsigeligt hukommelsesforbrug, tilbyder en indbygget interpreter for Lua 5.4 og understøtter komplekse datatyper som hashes, sæt og lister (ZSET, HSET, LIST, SETS og STRING).

En separat caching-tilstand er tilgængelig, hvor gamle data automatisk udskiftes med nye, når den ledige hukommelse er opbrugt. Det er muligt at knytte en levetid til dataene, hvor dataene anses for at være aktuelle. Tilstande af lageret kan gemmes på disk i baggrunden til efterfølgende gendannelse efter en genstart. Der tilbydes en HTTP-konsol til at styre systemet (knyttet til TCP-port 6379) samt et API til at returnere målinger, der er kompatibelt med Prometheus. I fremtidige versioner planlægges det at udvide understøttelsen af Redis-kommandoer og implementere muligheden for lagerspejling for at sikre fejl redundans og belastningsbalancering.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster