Mae system storio a storio mewn cof Gwas y Neidr wedi'i rhyddhau, sy'n trin data mewn fformat allweddol/gwerth a gellir ei ddefnyddio fel ateb ysgafn ar gyfer cyflymu gwaith safleoedd llwythog iawn, gan gadw ymholiadau araf i'r DBMS a data canolradd yn RAM. Mae Dragonfly yn cefnogi'r protocolau Memcached a Redis, sy'n eich galluogi i ddefnyddio llyfrgelloedd cleientiaid presennol a throsglwyddo prosiectau gan ddefnyddio Memcached a Redis i Dragonfly heb ail-weithio'r cod.
O'i gymharu â Redis, cyflawnodd Dragonfly gynnydd o 2 gwaith yn fwy (6 miliwn o geisiadau yr eiliad) ar gyfer llwythi gwaith nodweddiadol yn amgylchedd c16gn.25xlarge Amazon EC3.8. O'i gymharu â Memcached yn amgylchedd c6gn.16xlarge AWS, roedd Dragonfly yn gallu perfformio 4.7 gwaith yn fwy o geisiadau ysgrifennu yr eiliad (3.8 miliwn yn erbyn 806 mil) a 1.77 gwaith yn fwy o geisiadau darllen yr eiliad (3.7 miliwn yn erbyn 2.1 miliwn).

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 yr adegau brig roedd yn 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).

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.
Rhai o nodweddion Dragonfly:
- Modd caching, sy'n disodli hen ddata yn awtomatig â data newydd ar ôl i'r cof am ddim ddod i ben.
- Cefnogaeth ar gyfer rhwymo data am oes pan ystyrir bod y data yn berthnasol.
- Cefnogaeth ar gyfer fflysio cyflwr storio i ddisg yn y cefndir ar gyfer adferiad diweddarach ar ôl ailgychwyn.
- Presenoldeb consol HTTP (yn rhwymo i borthladd TCP 6379) ar gyfer rheoli system ac API ar gyfer metrigau dychwelyd, sy'n gydnaws â Prometheus.
- Cefnogaeth i 185 o orchmynion Redis, sy'n cyfateb yn fras i ymarferoldeb y datganiad Redis 5.
- Yn cefnogi pob gorchymyn Memcached ac eithrio CAS (gwirio a gosod).
- Cefnogaeth ar gyfer gweithrediadau asyncronaidd ar gyfer creu cipluniau.
- Defnydd cof rhagweladwy.
- Dehonglydd Lua 5.4 adeiledig.
- Yn cefnogi mathau data cymhleth fel hashes, setiau, rhestrau (ZSET, HSET, LIST, SETS a STRING) a data JSON.
- Yn cefnogi dyblygu storio ar gyfer goddefgarwch bai a chydbwyso llwyth.
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 ar gyfer prosiect Dragonfly yn ei gwneud yn ofynnol i'r cod gael ei drosglwyddo i drwydded Apache 2.0 ar Fawrth 15, 2028. 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.
Mae Dragonfly 1.0 yn nodedig am ei weithrediad o gefnogaeth ar gyfer dyblygu data o'r prif gweinydd i weinydd eilaidd. Gellir ffurfweddu Dragonfly i weithredu fel storfa eilaidd, gan dderbyn data o naill ai weinydd cynradd sy'n seiliedig ar Dragonfly neu sy'n seiliedig ar Redis. Mae'r API rheoli dyblygu yn gydnaws â Redis ac mae'n seiliedig ar y gorchmynion ROLE a REPLICAOF (SLAVEOF).
Ffynhonnell: opennet.ru
