Ngaleupaskeun Dragonfly 1.0, sistem cache data dina mémori

Sistem cache sareng panyimpenan dina mémori Dragonfly parantos dileupaskeun, anu ngamanipulasi data dina format konci / nilai sareng tiasa dianggo salaku solusi anu hampang pikeun ngagancangkeun karya situs anu sarat pisan, nga-cache query anu lambat kana DBMS sareng data panengah dina RAM. Dragonfly ngadukung protokol Memcached sareng Redis, anu ngamungkinkeun anjeun ngagunakeun perpustakaan klien anu tos aya sareng mindahkeun proyék nganggo Memcached sareng Redis ka Dragonfly tanpa ngerjakeun deui kodeu.

Dibandingkeun Redis, capung ngahontal kanaékan 2-melu dina kinerja (6 juta requests per detik) pikeun workloads has di lingkungan Amazon EC16 c25gn.3.8xlarge. Dibandingkeun jeung Memcached di lingkungan AWS c6gn.16xlarge, Dragonfly bisa nedunan 4.7 kali leuwih nulis requests per detik (3.8 juta versus 806 sarébu) jeung 1.77 kali leuwih maca requests per detik (3.7 juta versus 2.1 juta).

Ngaleupaskeun Dragonfly 1.0, sistem cache data dina mémori

Dina tés pikeun nyimpen 5 GB data, Dragonfly diperlukeun 30% memori kirang ti Redis. Nalika nyiptakeun jepretan nganggo paréntah "bgsave", konsumsi mémori ningkat, tapi dina momen puncak tetep ampir tilu kali kirang ti di Redis, sareng operasi ngarékam snapshot nyalira langkung gancang (dina tés, snapshot dina Dragonfly ditulis dina 30). detik, sedengkeun Redis - dina 42 detik).

Ngaleupaskeun Dragonfly 1.0, sistem cache data dina mémori

kinerja tinggi kahontal berkat arsitéktur multi-threaded tanpa babagi sumberdaya (dibagi-euweuh), nu hartina tiap thread ditugaskeun processor misah misah kalawan porsi data sorangan, gawéna tanpa mutexes na spin konci. Pikeun mastikeun atomisitas nalika damel sareng sababaraha konci, konci VLL anu hampang dianggo. Pikeun éfisién nyimpen informasi dina mémori, struktur dashtable dipaké, nu implements tipe tabel hash partitioned.

Sababaraha fitur Dragonfly:

  • Modeu cache, anu otomatis ngagentos data lami sareng data énggal saatos mémori bébas béak.
  • Rojongan pikeun ngariung kana data saumur hirup salila data dianggap relevan.
  • Rojongan pikeun kaayaan gudang flushing kana disk di latar tukang pikeun recovery engké sanggeus balikan deui.
  • Ayana hiji konsol HTTP (ngabeungkeut TCP port 6379) pikeun manajemén sistem na hiji API pikeun balik metrics, cocog sareng Prometheus.
  • Rojongan pikeun 185 paréntah Redis, anu kasarna sami sareng fungsionalitas pelepasan Redis 5.
  • Ngarojong sadaya paréntah Memcached iwal CAS (check-and-set).
  • Rojongan pikeun operasi asynchronous pikeun nyieun snapshots.
  • Konsumsi memori bisa diprediksi.
  • Diwangun-di Lua 5.4 juru.
  • Ngarojong jinis data kompléks sapertos hashes, set, daptar (ZSET, HSET, LIST, SETS sareng STRING) sareng data JSON.
  • Ngarojong réplikasi panyimpen pikeun kasabaran sesar sareng balancing beban.

Kodeu Dragonfly ditulis dina C / C ++ sarta disebarkeun dina BSL (Sumber Lisensi Usaha). Lisénsi BSL diusulkeun ku pendiri MySQL salaku alternatif pikeun modél Open Core. Hakekat BSL nyaéta yén kodeu fungsionalitas canggih mimitina sayogi pikeun modifikasi, tapi pikeun sababaraha waktos tiasa dianggo gratis ngan ukur upami syarat-syarat tambahan dicumponan, anu meryogikeun mésér lisénsi komérsial pikeun ngagiling. Syarat lisénsi tambahan pikeun proyék Dragonfly ngabutuhkeun kodeu pikeun ditransfer kana lisénsi Apache 2.0 dina 15 Maret 2028. Dugi ka waktos ieu, lisénsi ngamungkinkeun panggunaan kode ngan ukur pikeun mastikeun operasi jasa sareng produkna, tapi nyaram pamakean pikeun nyiptakeun jasa awan anu mayar anu bertindak salaku tambihan pikeun Dragonfly.

Vérsi Dragonfly 1.0 kasohor pikeun palaksanaan pangrojong pikeun réplikasi data ti server primér ka sekundér. Nanging, Dragonfly tiasa dikonpigurasikeun pikeun dianggo salaku panyimpen sekundér anu nampi data tina server primér boh dumasar kana Dragonfly atanapi dumasar kana Redis. API manajemén réplikasi kompatibel jeung Redis sarta dumasar kana pamakéan ROLE jeung REPLICAOF (SLAVEOF) paréntah.

sumber: opennet.ru

Tambahkeun komentar