Dragonfly, isang proyekto na sinasabing ang mas mabilis na kapalit para sa Redis at Memcached

Inilabas ang balita na ang unang bersyon ay magagamit na in-memory na data caching system Dragonfly, na nagbibigay ng suporta para sa Memcached at Redis protocol, ngunit pinapayagan nito ang mga query na tumakbo nang may mas mataas na pagganap at mas kaunting pagkonsumo ng memorya.

Pinangangasiwaan ng system ang data sa key/value format at maaaring magamit bilang isang magaan na solusyon para mapabilis ang mga site na mabigat ang load, mabagal na pag-cache ng mga query sa DBMS, at i-cache ang intermediate na data sa RAM.

Ang BSL ay iminungkahi ng mga co-founder ng MySQL bilang alternatibo sa Open Core na modelo. Ang kakanyahan ng BSL ay ang pinalawig na code ng pag-andar ay magagamit sa simula para sa pagbabago, ngunit sa loob ng ilang oras maaari itong magamit nang libre napapailalim lamang sa mga karagdagang kundisyon, na nangangailangan ng pagbili ng isang komersyal na lisensya upang ma-bypass.

Ang karagdagang mga tuntunin ng lisensya ng proyekto ng Dragonfly ay nangangailangan na ang code ay ma-convert sa Apache 2.0 na lisensya lamang sa Hunyo 1, 2027. Hanggang sa panahong iyon, pinapayagan lamang ng lisensya ang paggamit ng code upang matiyak ang pagpapatakbo ng mga serbisyo at produkto nito, ngunit ipinagbabawal ang paggamit upang lumikha ng mga bayad na serbisyo sa cloud na nagsisilbing add-on sa Dragonfly.

Dragonfly sinasabing ang pinakamabilis na memory storage system sa mundo, ayon sa mga developer at benchmark. Kumpara sa Redis, nakamit ng Dragonfly ang 25x na pagtaas ng performance at 3x na pagbawas sa pagkonsumo ng memorya sa ilalim ng karaniwang mga workload. Ang isang server ng Dragonfly ay maaaring magproseso ng milyun-milyong kahilingan sa bawat segundo, halimbawa, sa isang Amazon EC2 c6gn.16xlarge na kapaligiran, isang throughput na 3,8 milyong kahilingan bawat segundo ang nakamit.

Sa 5GB na mga pagsubok sa storage, kailangan ng Dragonfly ng 30% mas kaunting memory kaysa sa Redis. Sa panahon ng paglikha ng mga snapshot gamit ang "bgsave" na utos, ang pagkonsumo ng memorya ay tumataas, ngunit sa peak times ito ay pinananatili halos tatlong beses na mas mababa kaysa sa Redis, at ang snapshot write operation mismo ay mas mabilis (sa pagsubok, nagsulat ng isang snapshot sa Dragonfly sa loob ng 30 segundo, at Redis - sa 42 segundo).

Ang mataas na pagganap ay nakakamit salamat sa isang multi-threaded na arkitektura walang nakabahaging mapagkukunan ( shared-nothing ), na nagpapahiwatig na ang isang hiwalay at independiyenteng controller na may sarili nitong piraso ng data ay naka-attach sa bawat thread, gumagana nang walang mga mutex o spin-lock. Ang magaan na VLL lock ay ginagamit upang matiyak ang atomicity kapag nakikitungo sa maramihang mga susi. Upang mahusay na mag-imbak ng impormasyon sa memorya, ginagamit ang istraktura ng dashtable, na nagpapatupad ng isang uri ng mga naka-partition na hash table.

Sa mga function na magagamit sa ang unang bersyon ay nagha-highlight ng suporta para sa RESP2 protocol at 130 Redis command, na halos tumutugma sa functionality ng Redis 2.8 release.

Bukod dito, Sinusuportahan ng Dragonfly ang lahat ng Memcached command maliban sa CAS (i-verify at itakda), sumusuporta sa mga asynchronous na operasyon upang lumikha ng mga snapshot, nagbibigay ng predictable na pagkonsumo ng memory, nagbibigay ng built-in na Lua 5.4 interpreter, at sumusuporta sa mga kumplikadong uri ng data tulad ng mga hash, set, at listahan (ZSET, HSET, LIST, SETS, at STRING).

Hiwalay, available ang isang caching mode, kung saan ang lumang data ay awtomatikong pinapalitan ng bagong data kapag naubos na ang libreng memorya. Posibleng mag-link sa data habang-buhay kung saan ang data ay itinuturing na may kaugnayan.

Ang katayuan ng imbakan ay maaaring i-flush sa disk sa background para sa pagbawi sa ibang pagkakataon pagkatapos ng pag-reboot. Upang pamahalaan ang system, isang HTTP console (nagbubuklod sa TCP port 6379) at isang API para ibalik ang mga sukatan na sumusunod sa Prometheus. Sa mga susunod na release, plano naming palawakin ang suporta para sa mga Redis command at ipatupad ang kakayahang mag-replicate ng storage para sa failover at load balancing.

Sa wakas, kung interesado kang matuto pa tungkol dito, dapat mong malaman na ang Dragonfly code ay nakasulat sa C/C++ at ipinamamahagi sa ilalim ng BSL (Business Source License).

Maaari kang sumangguni tungkol sa proyekto Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.