Dragonfly, isang RAM data caching system

DragonFly

Ang Dragonfly ay isang in-memory na data store na binuo para sa mga modernong workload ng application.

Ilang araw na ang nakalipas ay inanunsyo ito paglabas ng Dragonfly in-memory caching at data storage system, na nagmamanipula ng data sa key/value format at maaaring magamit bilang isang magaan na solusyon para sa pagpapabilis ng mga site na may mataas na load sa pamamagitan ng pag-cache ng mabagal na query sa DBMS at intermediate na data sa RAM.

Dragonfly sumusuporta sa mga protocol ng Memcached at Redis, na nagbibigay-daan sa iyong gumamit ng mga kasalukuyang library ng kliyente at mga proyekto ng port gamit ang Memcached at Redis sa Dragonfly nang hindi kinakailangang i-rework ang iyong code.

Ito ay nagkakahalaga ng pagbanggit na Dragonfly kamakailan ay nakatanggap ng update, umaabot sa bersyon 1.0 nito at kung saan namumukod-tangi para sa pagpapatupad ng suporta para sa pagtitiklop ng data mula sa pangunahin hanggang sa pangalawang server.

Kasabay nito, Dragonfly maaaring i-configure upang magamit bilang pangalawang imbakan na tumatanggap ng data mula sa pangunahing server batay sa Dragonfly at Redis. Ang replication management API ay tugma sa Redis at batay sa paggamit ng ROLE at REPLICAOF (SLAVEOF) na mga utos.

Tungkol kay Dragonfly

Ang mataas na pagganap ay nakakamit salamat sa isang multi-threaded na arkitektura nang walang pagbabahagi ng mga mapagkukunan (shared-nothing), na nangangahulugan na ang isang hiwalay na controller ay naka-attach sa bawat thread na may sarili nitong piraso ng data, na gumagana nang walang mga mutex o spin-lock.

Ang magaan na mga VLL lock ay ginagamit upang magarantiya ang atomicity kapag nakikitungo sa maramihang mga susi, dahil upang maiimbak ang impormasyon nang mahusay sa memorya, ang dashtable na istraktura ay ginagamit, na nagpapatupad ng isang uri ng mga naka-partition na hash table.

Kung ikukumpara sa Redis, ipinagmamalaki ng Dragonfly ang 25x na pagpapalakas ng pagganap (3,8 milyong kahilingan bawat segundo) sa ilalim ng karaniwang mga workload sa isang Amazon EC2 c6gn.16xlarge environment. Kung ikukumpara sa Memcached sa isang AWS c6gn.16xlarge environment, nakumpleto ng Dragonfly ang 4,7 beses na mas maraming kahilingan sa pagsulat bawat segundo (3,8 milyon kumpara sa 806k) at 1,77 beses na mas maraming read request bawat segundo (3,7 milyon kumpara sa 2,1 milyon).

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

Ilan Ang mga tampok ng Dragonfly ay:

  • Isang caching mode na awtomatikong papalitan ang lumang data ng bagong data kapag naubos na ang libreng memorya.
  • Suporta para sa data binding lifecycles kung saan ang data ay itinuturing na napapanahon.
  • Suporta para sa pag-flush ng katayuan ng storage sa disk sa background para sa pagbawi sa ibang pagkakataon pagkatapos ng reboot.
  • Ang pagkakaroon ng HTTP console (bind sa TCP port 6379) para sa pamamahala ng system at isang API para sa mga bumabalik na sukatan, na tugma sa Prometheus.
  • Suporta para sa 185 Redis command, halos katumbas ng functionality ng Redis 5 release.
  • Suporta para sa lahat ng Memcached command maliban sa CAS (i-verify at i-configure).
  • Suporta para sa mga asynchronous na operasyon upang lumikha ng mga snapshot.
  • Nahuhulaang pagkonsumo ng memorya.
  • Pinagsamang interpreter ng Lua 5.4.
  • Suporta para sa mga kumplikadong uri ng data gaya ng mga hash, set, listahan (ZSET, HSET, LIST, SETS, at STRING), at JSON data.
  • Suporta sa pagtitiklop ng storage para sa failover at load balancing.

Para sa mga interesado sa Dragonfly code, dapat mong malaman na ito ay nakasulat sa C/C++ at ipinamamahagi sa ilalim ang lisensya BSL .Ang kakanyahan ng BSL ay ang pinalawig na code ng pag-andar ay magagamit sa simula para sa pagbabago, ngunit sa loob ng ilang panahon maaari itong magamit nang libre lamang napapailalim sa mga karagdagang kundisyon, na nangangailangan ng pagbili ng isang komersyal na lisensya upang ma-bypass.

Ang mga karagdagang tuntunin sa lisensya ng proyekto ng Dragonfly ay nangangailangan na ang code ay i-migrate sa Apache License 2.0 sa Marso 15, 2028. Hanggang sa panahong iyon, pinahihintulutan lamang ng lisensya ang paggamit ng code upang matiyak ang pagpapatakbo ng mga serbisyo at produkto nito, ngunit ipinagbabawal ang paggamit upang lumikha ng may bayad. mga serbisyo sa cloud na nagsisilbing plug-in sa Dragonfly.

Sa wakas kung interesado kang malaman ang kaunti pa tungkol dito, maaari mong suriin ang mga detalye 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.