Rilis Dragonfly 1.0, sistem caching data ing memori

Dragonfly ing-memori caching lan sistem panyimpenan wis dirilis, kang manipulates data ing format tombol / nilai lan bisa digunakake minangka solusi entheng kanggo nyepetake karya situs Highly dimuat, caching pitakonan alon menyang DBMS lan data penengah ing RAM. Dragonfly ndhukung protokol Memcached lan Redis, sing ngidini sampeyan nggunakake perpustakaan klien sing ana lan nransfer proyek nggunakake Memcached lan Redis menyang Dragonfly tanpa ngolah kode maneh.

Dibandhingake karo Redis, Dragonfly entuk peningkatan kinerja 2-lipat (6 yuta panjalukan per detik) kanggo beban kerja khas ing lingkungan Amazon EC16 c25gn.3.8xlarge. Dibandhingake karo Memcached ing lingkungan AWS c6gn.16xlarge, Dragonfly bisa nindakake 4.7 kaping panjalukan nulis saben detik (3.8 yuta mungsuh 806 ewu) lan 1.77 kaping maca panjalukan saben detik (3.7 yuta mungsuh 2.1 yuta).

Rilis Dragonfly 1.0, sistem caching data ing memori

Ing tes kanggo nyimpen 5 GB data, Dragonfly mbutuhake 30% memori kurang saka Redis. Nalika nggawe jepretan karo printah "bgsave", konsumsi memori mundhak, nanging ing wayahe puncak tetep meh telu kurang saka ing Redis, lan operasi ngrekam gambar asli seko dhewe luwih cepet (ing test, gambar asli seko Dragonfly ditulis ing 30 detik, nalika Redis - ing 42 detik).

Rilis Dragonfly 1.0, sistem caching data ing memori

Kinerja dhuwur digayuh thanks kanggo arsitektur multi-Utas tanpa nuduhake sumber daya (shared-nothing), kang tegese saben thread wis diutus prosesor kapisah karo bagean data dhewe, apa tanpa mutexes lan muter kunci. Kanggo mesthekake atomicity nalika nggarap macem-macem tombol, kunci VLL entheng digunakake. Kanggo nyimpen informasi kanthi efisien ing memori, struktur dashtable digunakake, sing ngetrapake jinis tabel hash partisi.

Sawetara fitur Dragonfly:

  • Mode cache, sing kanthi otomatis ngganti data lawas karo data anyar sawise memori free kesel.
  • Dhukungan kanggo ngiket data seumur hidup sajrone data kasebut dianggep relevan.
  • Dhukungan kanggo siram status panyimpenan menyang disk ing latar mburi kanggo Recovery mengko sawise miwiti maneh.
  • Anane konsol HTTP (ikatan karo port TCP 6379) kanggo manajemen sistem lan API kanggo metrik bali, kompatibel karo Prometheus.
  • Dhukungan kanggo 185 printah Redis, sing kira-kira padha karo fungsi release Redis 5.
  • Ndhukung kabeh perintah Memcached kajaba CAS (check-and-set).
  • Dhukungan kanggo operasi asinkron kanggo nggawe jepretan.
  • Konsumsi memori sing bisa diramal.
  • Interpreter Lua 5.4 sing dibangun.
  • Ndhukung jinis data kompleks kayata hash, set, dhaptar (ZSET, HSET, LIST, SETS lan STRING) lan data JSON.
  • Ndhukung replikasi panyimpenan kanggo toleransi fault lan load balancing.

Kode Dragonfly ditulis ing C / C ++ lan disebarake ing BSL (Lisensi Sumber Bisnis). Lisensi BSL diusulake dening co-founder MySQL minangka alternatif kanggo model Open Core. Inti saka BSL yaiku kode fungsi majeng wiwitane kasedhiya kanggo modifikasi, nanging kanggo sawetara wektu bisa digunakake kanthi gratis mung yen syarat tambahan ditemoni, sing mbutuhake tuku lisensi komersial kanggo ngubengi. Syarat lisensi tambahan kanggo proyek Dragonfly mbutuhake kode kasebut ditransfer menyang lisensi Apache 2.0 tanggal 15 Maret 2028. Nganti wektu iki, lisensi ngidini nggunakake kode mung kanggo mesthekake operasi layanan lan produk, nanging nglarang nggunakake kanggo nggawe layanan maya mbayar sing tumindak minangka tambahan kanggo Dragonfly.

Versi Dragonfly 1.0 misuwur amarga implementasine dhukungan kanggo replikasi data saka server utama menyang server sekunder. Nanging, Dragonfly bisa dikonfigurasi kanggo digunakake minangka panyimpenan sekunder sing nampa data saka server utama adhedhasar Dragonfly utawa adhedhasar Redis. API manajemen rΓ©plikasi kompatibel karo Redis lan adhedhasar panggunaan perintah ROLE lan REPLICAOF (SLAVEOF).

Source: opennet.ru

Add a comment