Pwojè Dragonfly la ap devlope yon ranplasman pi rapid pou Redis ak Memcached

Premye lage sistèm kachèt nan memwa Dragonfly la disponib, li bay sipò pou pwotokòl Memcached ak Redis, men li pèmèt demann yo egzekite ak pèfòmans ki pi wo ak mwens konsomasyon memwa. Sistèm nan manipile done nan fòma kle/valè epi yo ka itilize kòm yon solisyon ki lejè akselere travay la nan gwo chaj sit, kachèt demann dousman nan DBMS yo ak done entèmedyè nan RAM. Kòd Dragonfly ekri an C/C++ epi li distribye anba BSL (Lisans Sous Biznis).

Ko-fondatè MySQL te pwopoze lisans BSL la kòm yon altènativ a modèl Open Core. Sans nan BSL se ke kòd la nan fonksyonalite avanse se okòmansman disponib pou modifikasyon, men pou kèk tan ka itilize gratis sèlman si kondisyon adisyonèl yo satisfè, ki mande pou achte nan yon lisans komèsyal kontourne. Kondisyon lisans adisyonèl nan pwojè Dragonfly mande pou yo transfere kòd la nan lisans Apache 2.0 sèlman nan dat 1ye jen 2027. Jiska moman sa a, lisans lan pèmèt itilize kòd la sèlman pou asire operasyon sèvis li yo ak pwodwi li yo, men entèdi itilize pou kreye sèvis nwaj peye ki aji kòm yon adisyon pou Dragonfly.

Dapre devlopè yo ak tès demontre, Dragonfly reklamasyon yo se sistèm nan depo memwa pi rapid. Konpare ak Redis, Dragonfly reyalize yon ogmantasyon 25 fwa nan pèfòmans ak yon rediksyon twa fwa nan konsomasyon memwa pou chaj travay tipik. Yon sèvè Dragonfly ka trete dè milyon de demann pou chak segonn, pou egzanp, nan anviwònman an Amazon EC2 c6gn.16xlarge li te posib reyalize yon pèfòmans nan 3.8 milyon demann pou chak segonn.

Pwojè Dragonfly la ap devlope yon ranplasman pi rapid pou Redis ak Memcached

Nan tès pou estoke 5 GB done, Dragonfly te mande 30% mwens memwa pase Redis. Lè w ap kreye snapshots ak kòmand "bgsave", konsomasyon memwa ogmante, men nan moman pik li rete prèske twa fwa mwens pase nan Redis, ak operasyon an anrejistreman snapshot tèt li se pi vit (nan tès la, yon snapshot nan Dragonfly te ekri nan 30). segonn, pandan y ap Redis - nan 42 segonn).

Pwojè Dragonfly la ap devlope yon ranplasman pi rapid pou Redis ak Memcached

Se gwo pèfòmans reyalize gras a yon achitekti milti-threaded san yo pa pataje resous (pataje-anyen), ki vle di ke chak fil yo asiyen yon processeur separe separe ak pwòp pòsyon done li yo, k ap travay san mutexs ak kadna vire. Pou asire atomite lè w ap travay ak plizyè kle, yo itilize kadna VLL ki lejè. Pou konsève enfòmasyon efikasman nan memwa, yo itilize estrikti dashtable a, ki aplike yon kalite tab hash partition.

Pami karakteristik ki disponib nan premye lage a, yo note sipò pou pwotokòl RESP2 ak 130 kòmandman Redis, ki apeprè koresponn ak fonksyonalite Redis 2.8 la. Anplis de sa, Dragonfly sipòte tout kòmandman memcached eksepte CAS (check-and-set), bay sipò pou operasyon asynchrone pou kreye snapshots, bay konsomasyon memwa previzib, bay yon entèprèt Lua 5.4 entegre, ak sipòte kalite done konplèks tankou hash, ansanm, ak lis (ZSET, HSET, LIST, SETS ak STRING).

Yon mòd kachèt disponib separeman, ki otomatikman ranplase ansyen done ak nouvo done apre memwa gratis la fin itilize. Li posib yo tache yon lavi nan done yo pandan ki done yo konsidere kòm enpòtan. Eta depo ka vide sou disk nan background nan pou rekiperasyon pita apre rekòmanse. Pou jere sistèm nan, yo bay yon konsole HTTP (mare ak pò TCP 6379) ak yon API pou retounen mezi, konpatib ak Prometheus. Nan pwochen vèsyon, nou planifye pou elaji sipò pou kòmandman Redis epi aplike kapasite replikasyon depo pou tolerans fay ak balans chaj.

Sous: opennet.ru

Add nouvo kòmantè