Hoʻokuʻu ʻia ʻo Dragonfly 1.0, kahi ʻōnaehana no ka mālama ʻana i ka ʻikepili ma RAM

ʻO ka hoʻokuʻu ʻana o ka Dragonfly caching a me ka ʻōnaehana mālama ʻikepili i ka RAM, nāna e hoʻoponopono i ka ʻikepili i ke ʻano kī/waiwai a hiki ke hoʻohana ʻia ma ke ʻano he hopena māmā no ka wikiwiki ʻana i ka hana o nā wahi i hoʻouka nui ʻia, ka hoʻopaʻa ʻana i nā nīnau lohi i ka DBMS a me ka ʻikepili waena i loko. RAM. Kākoʻo ʻo Dragonfly i nā protocol Memcached a me Redis, kahi e hiki ai iā ʻoe ke hoʻohana i nā hale waihona puke o nā mea kūʻai aku a hoʻololi i nā papahana me ka hoʻohana ʻana iā Memcached a me Redis iā Dragonfly me ka hana ʻole ʻana i ke code.

Hoʻohālikelike ʻia me Redis, ua hoʻokō ʻo Dragonfly i kahi hoʻonui 2-fold o ka hana (6 miliona mau noi i kēlā me kēia kekona) no nā hana maʻamau ma ka Amazon EC16 c25gn.3.8xlarge environment. Ke hoʻohālikelike ʻia me Memcached ma ka AWS c6gn.16xlarge environment, hiki i ka Dragonfly ke hana i nā manawa 4.7 i kākau hou aku i nā noi no kekona (3.8 miliona versus 806 tausani) a me 1.77 mau manawa heluhelu heluhelu no kekona (3.7 miliona versus 2.1 miliona).

Hoʻokuʻu ʻia ʻo Dragonfly 1.0, kahi ʻōnaehana no ka mālama ʻana i ka ʻikepili ma RAM

I nā hoʻāʻo no ka mālama ʻana i ka 5 GB o ka ʻikepili, koi ʻo Dragonfly i ka 30% ka liʻiliʻi o ka hoʻomanaʻo ma mua o Redis. I ka hana ʻana i nā kiʻi paʻi me ke kauoha "bgsave", hoʻonui ka hoʻomanaʻo ʻana, akā i nā manawa kiʻekiʻe ua noho ʻoi aku ʻekolu mau manawa ma mua o Redis, a ʻoi aku ka wikiwiki o ka hoʻopaʻa ʻana i ka snapshot (ma ka hoʻāʻo, ua kākau ʻia kahi kiʻi ma Dragonfly ma 30. kekona, aʻo Redis - i 42 kekona).

Hoʻokuʻu ʻia ʻo Dragonfly 1.0, kahi ʻōnaehana no ka mālama ʻana i ka ʻikepili ma RAM

Loaʻa ka hana kiʻekiʻe ma muli o kahi hoʻolālā multi-threaded me ka ʻole kaʻana like ʻana i nā kumuwaiwai (shared-nothing), ʻo ia hoʻi, ua hāʻawi ʻia kēlā me kēia kaula i kahi kaʻina kaʻawale kaʻawale me kāna ʻāpana ponoʻī o ka ʻikepili, e hana ana me ka ʻole o nā mutexes a me nā laka wili. No ka hōʻoia ʻana i ka atomicity ke hana me nā kī he nui, hoʻohana ʻia nā laka VLL māmā. No ka mālama pono ʻana i ka ʻike i loko o ka hoʻomanaʻo, hoʻohana ʻia ka ʻōnaehana dashtable, kahi e hoʻokō ai i kahi ʻano papaʻaina i hoʻokaʻawale ʻia.

ʻO kekahi mau hiʻohiʻona o Dragonfly:

  • ʻO ke ʻano Caching, kahi e hoʻololi aunoa i ka ʻikepili kahiko me ka ʻikepili hou ma hope o ka pau ʻana o ka hoʻomanaʻo manuahi.
  • Kākoʻo no ka hoʻopaʻa ʻana i ka ʻikepili i ke ola a pau i manaʻo ʻia e pili ana ka ʻikepili.
  • Kākoʻo no ka hoʻokuʻu ʻana i ke kūlana waihona i ka disk ma ke kua no ka hoʻihoʻi hou ʻana ma hope o ka hoʻomaka hou ʻana.
  • ʻO ka loaʻa ʻana o kahi console HTTP (paʻa iā TCP port 6379) no ka hoʻokele ʻōnaehana a me kahi API no ka hoʻihoʻi ʻana i nā ana, kūpono me Prometheus.
  • Kākoʻo no nā kauoha 185 Redis, kahi like me ka hana o ka Redis 5 hoʻokuʻu.
  • Kākoʻo i nā kauoha Memcached a pau koe CAS (check-and-set).
  • Kākoʻo no nā hana asynchronous no ka hana ʻana i nā kiʻi paʻi.
  • Hoʻohana hoʻomanaʻo wānana.
  • Mea unuhi ʻōlelo Lua 5.4 i kūkulu ʻia.
  • Kākoʻo i nā ʻano ʻikepili paʻakikī e like me nā hashes, sets, lists (ZSET, HSET, LIST, SETS a me STRING) a me ka ʻikepili JSON.
  • Kākoʻo i ka hoʻopaʻa ʻana no ka hoʻomanawanui hewa a me ka hoʻokau kaulike.

Ua kākau ʻia ka code Dragonfly ma C/C++ a ua māhele ʻia ma lalo o ka BSL (Business Source License). Ua noi ʻia ka laikini BSL e nā mea hoʻokumu o MySQL ma ke ʻano he ʻokoʻa i ka model Open Core. ʻO ka manaʻo o BSL ʻo ia ka code o ka hana holomua i loaʻa mua no ka hoʻololi ʻana, akā no kekahi manawa hiki ke hoʻohana ʻia me ka manuahi wale nō inā e hoʻokō ʻia nā kūlana ʻē aʻe, e koi ana i ke kūʻai ʻana i kahi laikini kalepa e circumvent. Pono nā ʻōlelo laikini hou no ka papahana Dragonfly e hoʻololi i ke code i ka laikini Apache 2.0 ma Malaki 15, 2028. A hiki i kēia manawa, ʻae ka laikini i ka hoʻohana ʻana i ke code wale nō e hōʻoia i ka hana o kāna mau lawelawe a me nā huahana, akā pāpā ʻia ka hoʻohana ʻana no ka hana ʻana i nā lawelawe kapuaʻi i uku ʻia e hana i mea hoʻohui i ka Dragonfly.

He mea kaulana ʻo Dragonfly 1.0 no kona hoʻokō ʻana i ke kākoʻo no ka hoʻopiʻi ʻana i ka ʻikepili mai ke kikowaena mua a i ka lua. Eia naʻe, hiki ke hoʻonohonoho ʻia ʻo Dragonfly e hoʻohana ʻia ma ke ʻano he waihona lua e loaʻa ai ka ʻikepili mai kahi kikowaena mua ma luna o Dragonfly a i ʻole ma Redis. Ua kūpono ka API hoʻoponopono hou me Redis a ua hoʻokumu ʻia ma ka hoʻohana ʻana i nā kauoha ROLE a me REPLICAOF (SLAVEOF).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka