Rhyddhau Dragonfly 1.0, system ar gyfer storio data mewn RAM

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).

Rhyddhau Dragonfly 1.0, system ar gyfer storio data mewn RAM

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).

Rhyddhau Dragonfly 1.0, system ar gyfer storio data mewn RAM

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.

Fersiwn Mae Dragonfly 1.0 yn nodedig am ei gefnogaeth ar gyfer dyblygu data o'r prif weinydd i'r un uwchradd. Fodd bynnag, gellir ffurfweddu Dragonfly i'w ddefnyddio fel storfa eilaidd sy'n derbyn data o weinydd cynradd naill ai'n seiliedig ar Dragonfly neu'n seiliedig ar Redis. Mae'r API rheoli atgynhyrchu yn gydnaws Γ’ Redis ac mae'n seiliedig ar y defnydd o'r gorchmynion ROLE a REPLICAOF (SLAVEOF).

Ffynhonnell: opennet.ru

Ychwanegu sylw