Hoʻokumu ka papahana Dragonfly i kahi pani wikiwiki no Redis a me Memcached

Loaʻa ka hoʻokuʻu mua ʻana o ka Dragonfly in-memory caching system, e hāʻawi ana i ke kākoʻo no nā protocol Memcached a me Redis, akā e ʻae ana e hoʻokō ʻia nā nīnau me ka hana kiʻekiʻe aʻe a me ka emi ʻana o ka hoʻomanaʻo. Hoʻohana ka ʻōnaehana i ka ʻikepili ma 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ā pūnaewele haʻahaʻa kiʻekiʻe, ke kāʻei ʻana i nā nīnau lohi i ka DBMS a me ka ʻikepili waena ma RAM. 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 ke kumu o ka 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 manuahi me ka uku wale ʻia inā 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 o ka papahana Dragonfly e hoʻololi i ke code i ka laikini Apache 2.0 wale nō ma Iune 1, 2027. 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 uku e hana nei i mea hoʻohui iā Dragonfly.

Wahi a nā mea hoʻomohala a hōʻike i nā hoʻokolohua, ʻōlelo ʻo Dragonfly ʻo ia ka ʻōnaehana mālama hoʻomanaʻo wikiwiki loa. Hoʻohālikelike ʻia me Redis, ua hoʻokō ʻo Dragonfly i ka piʻi ʻana o 25-fold i ka hana a me ka hōʻemi ʻekolu mau manawa o ka hoʻomanaʻo ʻana no nā hana maʻamau. Hiki i kekahi kikowaena Dragonfly ke hana i nā miliona o nā noi i kēlā me kēia kekona, no ka laʻana, ma ka Amazon EC2 c6gn.16xlarge kaiapuni i hiki ke hoʻokō i kahi hana o 3.8 miliona mau noi i kekona.

Hoʻokumu ka papahana Dragonfly i kahi pani wikiwiki no Redis a me Memcached

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ʻohana ʻana i ka hoʻomanaʻo, akā i nā manawa kiʻekiʻe e noho mau ana ʻekolu mau manawa ma mua o Redis, a ʻoi aku ka wikiwiki o ka hoʻopaʻa ʻana i ka snapshot (i ka hoʻāʻo, ua kākau ʻia kahi kiʻi ma Dragonfly ma 30. kekona, aʻo Redis - i 42 kekona).

Hoʻokumu ka papahana Dragonfly i kahi pani wikiwiki no Redis a me Memcached

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.

Ma waena o nā hiʻohiʻona i loaʻa i ka hoʻokuʻu mua, ʻike ʻia ke kākoʻo no ka protocol RESP2 a me nā kauoha 130 Redis, e pili ana i ka hana o ka Redis 2.8 hoʻokuʻu. Eia hou, kākoʻo ʻo Dragonfly i nā kauoha memcached a pau koe CAS (check-and-set), hāʻawi i ke kākoʻo no nā hana asynchronous no ka hana ʻana i nā kiʻi paʻi kiʻi, hāʻawi i ka hoʻohana ʻana i ka hoʻomanaʻo wānana, hāʻawi i kahi unuhi ʻōlelo Lua 5.4 i kūkulu ʻia, a kākoʻo i nā ʻano ʻikepili paʻakikī e like me ka hashes, nā hoʻonohonoho, a me nā papa inoa (ZSET, HSET, LIST, SETS a me STRING).

Loaʻa ʻia kahi mode 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. Hiki ke hoʻopili i ke ola i ka ʻikepili i manaʻo ʻia e pili ana ka ʻikepili. Hiki ke hoʻokuʻu ʻia ke kūlana o ka waiho ʻana i ka disk ma hope no ka hoʻihoʻi hou ʻana ma hope o ka hoʻomaka hou ʻana. No ka mālama ʻana i ka ʻōnaehana, hāʻawi ʻia kahi console HTTP (e hoʻopaʻa ʻia i ke awa TCP 6379) a me kahi API no ka hoʻihoʻi ʻana i nā ana, kūpono me Prometheus. I nā mana e hiki mai ana, hoʻolālā mākou e hoʻonui i ke kākoʻo no nā kauoha Redis a hoʻokō i ka hiki ke hoʻihoʻi hou i ka waiho ʻana e hāʻawi i ka hoʻomanawanui hewa a me ke kaupaona ʻana.

Source: opennet.ru

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