Prosiect Gwas y Neidr yn datblygu amnewidiad cyflymach ar gyfer Redis a Memcached

Mae datganiad cyntaf system caching cof Dragonfly ar gael, sy'n darparu cefnogaeth ar gyfer protocolau Memcached a Redis, ond yn caniatáu i ymholiadau gael eu gweithredu gyda pherfformiad llawer uwch a llai o ddefnydd cof. Mae'r system yn trin data mewn fformat allweddol/gwerth a gellir ei ddefnyddio fel ateb ysgafn i gyflymu gwaith safleoedd llwyth uchel, gan gadw ymholiadau araf i'r DBMS a data canolradd yn RAM. Mae cod Gwas y Neidr wedi'i ysgrifennu yn C/C++ ac fe'i dosberthir o dan y BSL (Trwydded Ffynhonnell Busnes).

Cynigiwyd y drwydded BSL gan gyd-sylfaenwyr MySQL fel dewis amgen i'r model Open Core. Hanfod BSL yw bod y cod ymarferoldeb uwch ar gael i'w addasu i ddechrau, ond dim ond os bodlonir amodau ychwanegol y gellir ei ddefnyddio am beth amser, sy'n gofyn am brynu trwydded fasnachol i osgoi hynny. Mae telerau trwydded ychwanegol prosiect Dragonfly yn ei gwneud yn ofynnol i'r cod gael ei drosglwyddo i drwydded Apache 2.0 ar 1 Mehefin, 2027 yn unig. Hyd at yr amser hwn, mae'r drwydded yn caniatáu defnyddio'r cod yn unig i sicrhau gweithrediad ei wasanaethau a'i gynhyrchion, ond mae'n gwahardd ei ddefnyddio ar gyfer creu gwasanaethau cwmwl taledig sy'n gweithredu fel ychwanegiad i Dragonfly.

Yn ôl y datblygwyr a phrofion arddangos, mae Dragonfly yn honni mai dyma'r system storio cof gyflymaf. O'i gymharu â Redis, cyflawnodd Dragonfly gynnydd o 25 gwaith yn fwy mewn perfformiad a gostyngiad deirgwaith yn y defnydd o gof ar gyfer llwythi gwaith nodweddiadol. Gall un gweinydd Gwas y Neidr brosesu miliynau o geisiadau yr eiliad, er enghraifft, yn amgylchedd Amazon EC2 c6gn.16xlarge roedd yn bosibl cyflawni perfformiad o 3.8 miliwn o geisiadau yr eiliad.

Prosiect Gwas y Neidr yn datblygu amnewidiad cyflymach ar gyfer Redis a Memcached

Mewn profion ar gyfer storio 5 GB o ddata, roedd Gwas y Neidr angen 30% yn llai o gof na Redis. Wrth greu cipluniau gyda'r gorchymyn “bgsave”, mae'r defnydd o gof yn cynyddu, ond ar adegau brig mae'n parhau i fod bron i dair gwaith yn llai nag yn Redis, ac mae'r gweithrediad recordio ciplun ei hun yn llawer cyflymach (yn y prawf, ysgrifennwyd ciplun yn Dragonfly yn 30 eiliadau, tra Redis - mewn 42 eiliad).

Prosiect Gwas y Neidr yn datblygu amnewidiad cyflymach ar gyfer Redis a Memcached

Cyflawnir perfformiad uchel diolch i bensaernïaeth aml-edau heb rannu adnoddau (rhannu-dim), sy'n golygu bod pob edefyn yn cael prosesydd ar wahân ar wahân gyda'i gyfran ei hun o ddata, gan weithio heb mutexes a chloeon troelli. Er mwyn sicrhau atomigrwydd wrth weithio gydag allweddi lluosog, defnyddir cloeon VLL ysgafn. Er mwyn storio gwybodaeth yn y cof yn effeithlon, defnyddir y strwythur dashtable, sy'n gweithredu math o dabl stwnsh rhanedig.

Ymhlith y nodweddion sydd ar gael yn y datganiad cyntaf, nodir cefnogaeth i'r protocol RESP2 a gorchmynion 130 Redis, sydd fwy neu lai yn cyfateb i ymarferoldeb y datganiad Redis 2.8. Yn ogystal, mae Dragonfly yn cefnogi'r holl orchmynion memcached ac eithrio CAS (gwirio a gosod), yn darparu cefnogaeth ar gyfer gweithrediadau asyncronaidd ar gyfer creu cipluniau, yn darparu defnydd cof rhagweladwy, yn darparu dehonglydd Lua 5.4 adeiledig, ac yn cefnogi mathau data cymhleth fel hashes, setiau, a rhestrau (ZSET, HSET, LIST, SETS a STRING).

Mae modd caching ar gael ar wahân, sy'n disodli hen ddata yn awtomatig â data newydd ar ôl i'r cof am ddim ddod i ben. Mae'n bosibl atodi oes i'r data pan fydd y data'n cael ei ystyried yn berthnasol. Gellir fflysio cyflwr storio i ddisg yn y cefndir ar gyfer adferiad diweddarach ar ôl ailgychwyn. Er mwyn rheoli'r system, darperir consol HTTP (yn rhwymo i borthladd TCP 6379) ac API ar gyfer metrigau dychwelyd, sy'n gydnaws â Prometheus. Mewn fersiynau yn y dyfodol, rydym yn bwriadu ehangu cefnogaeth ar gyfer gorchmynion Redis a gweithredu'r gallu i ddyblygu storfa i ddarparu goddefgarwch bai a chydbwyso llwyth.

Ffynhonnell: opennet.ru

Ychwanegu sylw