Mradi wa Dragonfly unatengeneza uwekaji wa Redis na Memcached haraka

Toleo la kwanza la mfumo wa kuhifadhi akiba ya Kereng'ende unapatikana, ukitoa usaidizi kwa itifaki za Memcached na Redis, lakini kuruhusu maswali kutekelezwa kwa utendakazi wa juu zaidi na utumizi mdogo wa kumbukumbu. Mfumo huu hubadilisha data katika umbizo la ufunguo/thamani na inaweza kutumika kama suluhu nyepesi ili kuharakisha kazi ya tovuti zenye upakiaji wa juu, kuhifadhi hoja za polepole kwa DBMS na data ya kati katika RAM. Msimbo wa Kereng'ende umeandikwa kwa C/C++ na husambazwa chini ya BSL (Leseni ya Chanzo cha Biashara).

Leseni ya BSL ilipendekezwa na waanzilishi-wenza wa MySQL kama njia mbadala ya modeli ya Open Core. Kiini cha BSL ni kwamba kanuni za utendakazi wa hali ya juu zinapatikana kwa marekebisho, lakini kwa muda fulani zinaweza kutumika bila malipo tu ikiwa masharti ya ziada yametimizwa, ambayo yanahitaji ununuzi wa leseni ya kibiashara ili kukwepa. Masharti ya ziada ya leseni ya mradi wa Dragonfly yanahitaji msimbo kuhamishiwa kwa leseni ya Apache 2.0 mnamo Juni 1, 2027 pekee. Hadi wakati huu, leseni inaruhusu matumizi ya msimbo ili tu kuhakikisha utendakazi wa huduma na bidhaa zake, lakini inakataza matumizi ya kuunda huduma za wingu zinazolipishwa ambazo hufanya kama nyongeza ya Kereng'ende.

Kulingana na wasanidi programu na majaribio yaliyoonyeshwa, Dragonfly inadai kuwa mfumo wa kuhifadhi kumbukumbu wa haraka zaidi. Ikilinganishwa na Redis, Kereng'ende alipata ongezeko la mara 25 la utendakazi na kupunguzwa mara tatu kwa matumizi ya kumbukumbu kwa mizigo ya kawaida ya kazi. Seva moja ya Dragonfly inaweza kushughulikia mamilioni ya maombi kwa sekunde, kwa mfano, katika mazingira ya Amazon EC2 c6gn.16xlarge iliwezekana kufikia utendaji wa maombi milioni 3.8 kwa sekunde.

Mradi wa Dragonfly unatengeneza uwekaji wa Redis na Memcached haraka

Katika majaribio ya kuhifadhi GB 5 ya data, Kereng'ende ilihitaji kumbukumbu chini ya 30% kuliko Redis. Wakati wa kuunda snapshots na amri ya "bgsave", utumiaji wa kumbukumbu huongezeka, lakini wakati wa kilele hubaki karibu mara tatu chini ya Redis, na operesheni ya kurekodi picha yenyewe ni haraka sana (katika jaribio, picha ya Dragonfly iliandikwa mnamo 30. sekunde, wakati Redis - katika sekunde 42).

Mradi wa Dragonfly unatengeneza uwekaji wa Redis na Memcached haraka

Utendaji wa hali ya juu unapatikana kwa shukrani kwa usanifu wa nyuzi nyingi bila kugawana rasilimali (hakuna kitu), ambayo inamaanisha kuwa kila uzi hupewa processor tofauti na sehemu yake ya data, inafanya kazi bila bubu na kufuli za spin. Ili kuhakikisha atomiki wakati wa kufanya kazi na funguo nyingi, kufuli za VLL nyepesi hutumiwa. Ili kuhifadhi habari kwa ufanisi kwenye kumbukumbu, muundo wa dashibodi hutumiwa, ambao hutekelezea aina ya jedwali la hashi iliyogawanywa.

Miongoni mwa vipengele vinavyopatikana katika toleo la kwanza, usaidizi wa itifaki ya RESP2 na amri 130 za Redis hujulikana, ambayo takriban inalingana na utendaji wa kutolewa kwa Redis 2.8. Kwa kuongezea, Dragonfly inasaidia amri zote zilizohifadhiwa isipokuwa CAS (angalia-na-seti), hutoa usaidizi kwa shughuli zisizolingana za kuunda vijipicha, hutoa utumiaji wa kumbukumbu unaotabirika, hutoa mkalimani wa Lua 5.4 uliojumuishwa, na inasaidia aina changamano za data kama vile heshi, seti, na orodha (ZSET, HSET, LIST, SETS na STRING).

Hali ya caching inapatikana tofauti, ambayo inachukua nafasi ya data ya zamani na data mpya baada ya kumbukumbu ya bure imekamilika. Inawezekana kuambatisha maisha yote kwa data ambayo data inachukuliwa kuwa muhimu. Hali ya uhifadhi inaweza kusukumwa kwenye diski chinichini kwa urejeshaji wa baadaye baada ya kuwasha upya. Ili kudhibiti mfumo, kiweko cha HTTP kinatolewa (huunganishwa na mlango wa TCP 6379) na API ya kurejesha metriki, inayotumika na Prometheus. Katika matoleo yajayo, tunapanga kupanua uwezo wa kutumia amri za Redis na kutekeleza uwezo wa kunakili hifadhi ili kutoa ustahimilivu wa hitilafu na kusawazisha upakiaji.

Chanzo: opennet.ru

Kuongeza maoni