Išleista „Dragonfly 1.0“, duomenų kaupimo talpykloje sistema atmintyje

Buvo išleista „Dragonfly“ talpyklos kaupimo ir saugojimo sistema atmintyje, kuri manipuliuoja duomenimis rakto / vertės formatu ir gali būti naudojamas kaip lengvas sprendimas labai apkrautų svetainių darbui pagreitinti, lėtoms DBVS užklausoms ir tarpiniams RAM duomenims talpinti. Dragonfly palaiko Memcached ir Redis protokolus, kurie leidžia naudoti esamas klientų bibliotekas ir perkelti projektus naudojant Memcached ir Redis į Dragonfly neperdirbant kodo.

Palyginti su Redis, „Dragonfly“ pasiekė 2 kartus didesnį našumą (6 mln. užklausų per sekundę) atliekant tipinius darbo krūvius „Amazon EC16 c25gn.3.8xlarge“ aplinkoje. Palyginti su „Memcached“ AWS c6gn.16xlarge aplinkoje, „Dragonfly“ galėjo atlikti 4.7 karto daugiau rašymo užklausų per sekundę (3.8 mln., palyginti su 806 tūkst.) ir 1.77 karto daugiau skaitymo užklausų per sekundę (3.7 mln., palyginti su 2.1 mln.).

Išleista „Dragonfly 1.0“, duomenų kaupimo talpykloje sistema atmintyje

Atliekant bandymus, skirtus 5 GB duomenų saugojimui, „Dragonfly“ prireikė 30% mažiau atminties nei „Redis“. Kuriant momentines nuotraukas su komanda „bgsave“ atminties sąnaudos didėja, tačiau piko metu jos išliko beveik tris kartus mažiau nei Redis, o pati momentinių nuotraukų įrašymo operacija yra daug greitesnė (teste momentinė nuotrauka Dragonfly buvo parašyta 30 m. sekundėmis, o Redis – per 42 sekundes).

Išleista „Dragonfly 1.0“, duomenų kaupimo talpykloje sistema atmintyje

Didelis našumas pasiekiamas dėl kelių gijų architektūros nesidalinant ištekliais (bendrai nieko), o tai reiškia, kad kiekvienai gijai priskiriamas atskiras procesorius su savo duomenų dalimi, veikiantis be nutildymo ir sukimosi užraktų. Siekiant užtikrinti atomiškumą dirbant su keliais raktais, naudojamos lengvos VLL spynos. Norint efektyviai saugoti informaciją atmintyje, naudojama dashtable struktūra, kuri įgyvendina skaidomos maišos lentelės tipą.

Kai kurios „Dragonfly“ funkcijos:

  • Talpyklos režimas, kuris automatiškai pakeičia senus duomenis naujais, kai išnaudojama laisva atmintis.
  • Pririšimo prie duomenų palaikymas visą gyvenimą, per kurį duomenys laikomi svarbiais.
  • Atminties būsenos plovimo į diską palaikymas fone, kad vėliau būtų galima atkurti iš naujo.
  • Yra HTTP konsolė (susijungiama su TCP prievadu 6379), skirta sistemos valdymui, ir API metrikai grąžinti, suderinama su Prometheus.
  • 185 Redis komandų palaikymas, kuris maždaug atitinka Redis 5 leidimo funkcionalumą.
  • Palaiko visas atminties talpyklos komandas, išskyrus CAS (patikrinti ir nustatyti).
  • Asinchroninių momentinių nuotraukų kūrimo operacijų palaikymas.
  • Nuspėjamas atminties suvartojimas.
  • Integruotas Lua 5.4 vertėjas.
  • Palaiko sudėtingus duomenų tipus, tokius kaip maišos, rinkiniai, sąrašai (ZSET, HSET, LIST, SETS ir STRING) ir JSON duomenys.
  • Palaiko saugyklos replikaciją, užtikrinančią atsparumą gedimams ir apkrovos balansavimą.

„Dragonfly“ kodas parašytas C/C++ ir platinamas pagal BSL (verslo šaltinio licenciją). BSL licenciją kaip alternatyvą Open Core modeliui pasiūlė MySQL įkūrėjai. BSL esmė ta, kad išplėstinio funkcionalumo kodas iš pradžių yra prieinamas modifikacijai, tačiau kurį laiką juo galima naudotis nemokamai tik esant papildomoms sąlygoms, kurių apeiti reikia įsigyti komercinę licenciją. Papildomos „Dragonfly“ projekto licencijos sąlygos reikalauja, kad kodas būtų perkeltas į „Apache 2.0“ licenciją 15 m. kovo 2028 d. Iki šiol licencija leidžia naudoti kodą tik siekiant užtikrinti savo paslaugų ir produktų veikimą, tačiau draudžiama naudoti kuriant mokamas debesies paslaugas, kurios veikia kaip Dragonfly priedas.

„Dragonfly 1.0“ pasižymi tuo, kad įdiegė duomenų replikacijos palaikymą iš pagrindinio serverio. serveris į antrinį serverį. „Dragonfly“ galima sukonfigūruoti veikti kaip antrinė saugykla, gaunanti duomenis iš „Dragonfly“ arba „Redis“ pagrindu veikiančio pagrindinio serverio. Replikacijos valdymo API yra suderinama su „Redis“ ir pagrįsta ROLE ir REPLICAOF (SLAVEOF) komandomis.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster