Dragonfly, një projekt që pretendon të jetë zëvendësuesi më i shpejtë për Redis dhe Memcached

Lajmi u bë i ditur se versioni i parë është tashmë i disponueshëm sistemi i ruajtjes së të dhënave në memorie Dragonfly, i cili ofron mbështetje për protokollet Memcached dhe Redis, por lejon që pyetjet të ekzekutohen me performancë shumë më të lartë dhe më pak konsum memorie.

Sistemi trajton të dhënat në formatin kyç/vlerë dhe mund të përdoret si një zgjidhje e lehtë për të shpejtuar faqet e ngarkuara shumë, për të ruajtur memorien e pyetjeve të ngadalta në DBMS dhe për të ruajtur të dhënat e ndërmjetme në RAM.

BSL u propozua nga bashkëthemeluesit e MySQL si një alternativë ndaj modelit Open Core. Thelbi i BSL është se kodi i funksionalitetit të zgjeruar fillimisht është i disponueshëm për modifikim, por për ca kohë ai mund të përdoret falas vetëm në varësi të kushteve shtesë, të cilat kërkojnë blerjen e një licence tregtare për të anashkaluar.

Kushtet shtesë të licencës të projektit Dragonfly kërkojnë që kodi të konvertohet në licencën Apache 2.0 vetëm më 1 qershor 2027. Deri në atë kohë, licenca lejon përdorimin e kodit vetëm për të siguruar funksionimin e shërbimeve dhe produkteve të tij, por ndalon përdorimin për të krijuar shërbime cloud me pagesë që veprojnë si një shtesë për Dragonfly.

Dragonfly pretendon të jetë sistemi më i shpejtë i ruajtjes së memories në botë, sipas zhvilluesve dhe standardeve. Krahasuar me Redis, Dragonfly arriti një rritje të performancës 25 herë dhe një reduktim 3 herë në konsumin e memories nën ngarkesat tipike të punës. Një server i vetëm Dragonfly mund të përpunojë miliona kërkesa në sekondë, për shembull, në një mjedis Amazon EC2 c6gn.16xlarge, u arrit një xhiro prej 3,8 milion kërkesa në sekondë.

Në testet e ruajtjes 5 GB, Dragonfly kërkonte 30% më pak memorie se Redis. Gjatë krijimit të fotografive duke përdorur komandën "bgsave", konsumi i memories rritet, por në kohën e pikut mbahet pothuajse tre herë më pak se në Redis, dhe vetë operacioni i shkrimit të fotografive është shumë më i shpejtë (në test, shkroi një fotografi në Dragonfly në 30 sekonda, dhe Redis - në 42 sekonda).

Performanca e lartë arrihet falë një arkitekture me shumë fije nuk ka burime të përbashkëta ( shared-nothing ), që nënkupton se një kontrollues i veçantë dhe i pavarur me të dhënat e veta është i bashkangjitur në çdo thread, duke punuar pa mutexes ose spin-locks. Flokët e lehta VLL përdoren për të siguruar atomicitetin kur kemi të bëjmë me çelësa të shumtë. Për të ruajtur informacionin në mënyrë efikase në memorie, përdoret struktura e dashtable, e cila zbaton një lloj tabelash hash të ndarë.

Nga funksionet e disponueshme në versioni i parë thekson mbështetjen për protokollin RESP2 dhe 130 komandat Redis, e cila përafërsisht korrespondon me funksionalitetin e lëshimit të Redis 2.8.

Përveç kësaj, Dragonfly mbështet të gjitha komandat Memcached përveç CAS (verifiko dhe vendos), ofron mbështetje për operacionet asinkrone për krijimin e fotografive, siguron konsum të parashikueshëm të memories, ofron një interpretues të integruar Lua 5.4 dhe mbështet lloje komplekse të dhënash si hash, grupe dhe lista (ZSET, HSET, LIST, SETS , dhe STRING).

Më vete, disponohet një modalitet i memorizimit, në të cilën të dhënat e vjetra zëvendësohen automatikisht me të dhëna të reja pasi të jetë shteruar memoria e lirë. Është e mundur të lidheni me të dhënat për jetën gjatë së cilës të dhënat konsiderohen të rëndësishme.

Gjendja e ruajtjes mund të fshihet në disk në sfond për rikuperim të mëvonshëm pas një rindezjeje. Për të menaxhuar sistemin, ofrohet një tastierë HTTP (lidhet me portin TCP 6379) dhe një API për të kthyer metrikat në përputhje me Prometheus. Në publikimet e ardhshme, ne planifikojmë të zgjerojmë mbështetjen për komandat Redis dhe të zbatojmë aftësinë për të përsëritur hapësirën ruajtëse për dështimin dhe balancimin e ngarkesës.

Së fundi, nëse jeni të interesuar të mësoni më shumë rreth tij, duhet të dini se kodi Dragonfly është i shkruar në C/C++ dhe shpërndahet nën licencën BSL (Business Source License).

Ju mund të konsultoheni për projektin Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.