Dragonfly, et prosjekt som hevder å være den raskere erstatningen for Redis og Memcached

Nyheten ble sluppet at den første versjonen er allerede tilgjengelig databufringssystem i minnet Dragonfly, som gir støtte for Memcached- og Redis-protokollene, men det lar spørringer kjøre med mye høyere ytelse og mindre minneforbruk.

Systemet håndterer data i nøkkel/verdi-format og kan brukes som en lettvektsløsning for å øke hastigheten på tungt belastede nettsteder, cache trege spørringer i DBMS og cache mellomliggende data i RAM.

BSL ble foreslått av medgründerne av MySQL som et alternativ til Open Core-modellen. Essensen av BSL er at den utvidede funksjonalitetskoden i utgangspunktet er tilgjengelig for modifikasjon, men i noen tid kan den brukes gratis kun under tilleggsbetingelser, som krever kjøp av en kommersiell lisens for å omgå.

De ekstra lisensvilkårene for Dragonfly-prosjektet krever at koden konverteres til Apache 2.0-lisensen kun 1. juni 2027. Inntil det tidspunktet tillater lisensen bruk av koden kun for å sikre driften av tjenestene og produktene, men forbyr bruk for å lage betalte skytjenester som fungerer som et tillegg til Dragonfly.

Dragonfly hevder å være verdens raskeste minnelagringssystem, i henhold til utviklere og benchmarks. Sammenlignet med Redis oppnådde Dragonfly en ytelsesøkning på 25 ganger og en 3 ganger reduksjon i minneforbruk under typiske arbeidsbelastninger. En enkelt Dragonfly-server kan behandle millioner av forespørsler per sekund, for eksempel i et Amazon EC2 c6gn.16xlarge-miljø ble det oppnådd en gjennomstrømning på 3,8 millioner forespørsler per sekund.

I 5 GB lagringstester krevde Dragonfly 30 % mindre minne enn Redis. Under opprettelsen av øyeblikksbilder ved hjelp av "bgsave"-kommandoen øker minneforbruket, men på topptider opprettholdes det nesten tre ganger mindre enn i Redis, og selve snapshot-skriveoperasjonen er mye raskere (i testen skrev et øyeblikksbilde i Dragonfly på 30 sekunder, og Redis - på 42 sekunder).

Høy ytelse oppnås takket være en flertrådsarkitektur ingen delte ressurser ( shared-nothing ), noe som innebærer at en separat og uavhengig kontroller med sin egen del av data er knyttet til hver tråd, og fungerer uten mutexes eller spin-locks. Lette VLL-låser brukes for å sikre atomitet når du arbeider med flere nøkler. For å lagre informasjon effektivt i minnet, brukes dashtable-strukturen, som implementerer en slags partisjonerte hashtabeller.

Av funksjonene som er tilgjengelige i den første versjonen fremhever støtte for RESP2-protokollen og 130 Redis-kommandoer, som omtrent tilsvarer funksjonaliteten til Redis 2.8-utgivelsen.

Videre Dragonfly støtter alle Memcached-kommandoer unntatt CAS (verifiser og sett), gir støtte for asynkrone operasjoner for å lage øyeblikksbilder, gir forutsigbart minneforbruk, gir en innebygd Lua 5.4-tolk og støtter komplekse datatyper som hashes, sett og lister (ZSET, HSET, LIST, SETS , og STRING).

Separat er en bufringsmodus tilgjengelig, der gamle data automatisk erstattes av nye data når ledig minne er oppbrukt. Det er mulig å lenke til data for livet der dataene anses som relevante.

Lagringstilstand kan skylles til disk i bakgrunnen for senere gjenoppretting etter omstart. For å administrere systemet leveres en HTTP-konsoll (binder til TCP-port 6379) og en API for å returnere Prometheus-kompatible beregninger. I fremtidige utgivelser planlegger vi å utvide støtten for Redis-kommandoer og implementere muligheten til å replikere lagring for failover og lastbalansering.

Til slutt, hvis du er interessert i å lære mer om det, bør du vite at Dragonfly-koden er skrevet i C/C++ og distribueres under BSL-lisensen (Business Source License).

Du kan rådføre deg om prosjektet I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.