Dragonfly, et RAM-databufringssystem

DragonFly

Dragonfly er et datalager i minnet bygget for moderne applikasjonsarbeidsmengder.

For noen dager siden ble det annonsert utgivelse av Dragonfly i minnet caching og datalagringssystem, som manipulerer data i nøkkel/verdi-format og kan brukes som en lettvektsløsning for å øke hastigheten på nettsteder med høy belastning ved å bufre trege spørringer til DBMS og mellomliggende data i RAM.

Dragonfly støtter Memcached og Redis protokoller, slik at du kan bruke eksisterende klientbiblioteker og portprosjekter ved å bruke Memcached og Redis til Dragonfly uten å måtte omarbeide koden din.

Det er verdt å nevne at Dragonfly nylig mottatt en oppdatering, når sin versjon 1.0 og i hvilken skiller seg ut for implementering av støtte for datareplikering fra primær til sekundær server.

Samtidig Dragonfly kan konfigureres til å brukes som sekundær lagring som aksepterer data fra hovedserveren basert på Dragonfly og Redis. Replikeringsadministrasjons-APIet er kompatibelt med Redis og er basert på bruk av kommandoene ROLE og REPLICAOF (SLAVEOF).

Om Dragonfly

Høy ytelse oppnås takket være en flertrådsarkitektur uten å dele ressurser (shared-nothing), som betyr at en egen kontroller er knyttet til hver tråd med sin egen databit, som fungerer uten mutexes eller spin-locks.

Lette VLL-låser brukes for å garantere atomitet når du arbeider med flere nøkler, siden for å lagre informasjonen effektivt i minnet, brukes dashtabellstrukturen, som implementerer en slags partisjonerte hash-tabeller.

Sammenlignet med Redis, har Dragonfly en 25x ytelsesøkning (3,8 millioner forespørsler per sekund) under typiske arbeidsbelastninger i et Amazon EC2 c6gn.16xlarge-miljø. Sammenlignet med Memcached i et AWS c6gn.16xlarge-miljø, var Dragonfly i stand til å fullføre 4,7 ganger flere skriveforespørsler per sekund (3,8 millioner mot 806k) og 1,77 ganger flere leseforespørsler per sekund (3,7 millioner mot 2,1 millioner).

I 5 GB lagringstester, Dragonfly krevde 30 % mindre minne enn Redis. Under opprettelse av øyeblikksbilder ved å bruke "bgsave"-kommandoen, øker minneforbruket, men på topptider ble det holdt nesten tre ganger mindre enn i Redis, og selve skriveoperasjonen for øyeblikksbilde er mye raskere (i tilfelle Redis). test, a snapshot ble skrevet på Dragonfly på 30 sekunder, og Redis – på 42 sekunder).

Noen Dragonfly-funksjoner er:

  • En hurtigbuffermodus som automatisk erstatter gamle data med nye data når ledig minne er oppbrukt.
  • Støtte for databindingslivssykluser der data anses som oppdaterte.
  • Støtte for å skylle lagringstilstand til disk i bakgrunnen for senere gjenoppretting etter omstart.
  • Tilstedeværelsen av en HTTP-konsoll (binder på TCP-port 6379) for systemadministrasjon og en API for å returnere beregninger, kompatibel med Prometheus.
  • Støtte for 185 Redis-kommandoer, omtrent tilsvarende funksjonaliteten til Redis 5-utgivelsen.
  • Støtte for alle Memcached-kommandoer unntatt CAS (verifiser og konfigurer).
  • Støtte for asynkrone operasjoner for å lage øyeblikksbilder.
  • Forutsigbart minneforbruk.
  • Integrert Lua-tolk 5.4.
  • Støtte for komplekse datatyper som hashes, sett, lister (ZSET, HSET, LIST, SETS og STRING) og JSON-data.
  • Lagringsreplikeringsstøtte for failover og lastbalansering.

For de som er interessert i Dragonfly-koden, bør du vite at dette er skrevet i C/C++ og er distribuert under lisensen BSL Essensen av BSL er at den utvidede funksjonalitetskoden i utgangspunktet er tilgjengelig for modifikasjon, men i noen tid kan den brukes gratis kun underlagt tilleggsbetingelser, som krever kjøp av en kommersiell lisens for å omgå.

Dragonfly-prosjektets tilleggslisensvilkår krever at koden migreres til Apache License 2.0 15. mars 2028. Inntil da tillater lisensen bruk av koden kun for å sikre driften av tjenestene og produktene, men forbyr bruk for å lage betalte skytjenester som fungerer som en plug-in til Dragonfly.

Endelig hvis du er interessert i å vite litt mer om det, kan du sjekke detaljene i følgende lenke.


Bli den første til å kommentere

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.