Dragonfly proiektuak Redis eta Memcached-en ordezko azkarragoak garatzen ditu

Dragonfly memoriako cache-sistemaren lehen bertsioa eskuragarri dago, Memcached eta Redis protokoloetarako laguntza eskaintzen du, baina kontsultak askoz errendimendu handiagoarekin eta memoria-kontsumo gutxiagorekin exekutatzeko aukera ematen du. Sistemak datuak gako/balio formatuan manipulatzen ditu eta soluzio arin gisa erabil daiteke karga handiko guneen lana bizkortzeko, kontsulta motelak DBMSra eta tarteko datuak RAMan gordetzeko. Dragonfly kodea C/C++-n idatzita dago eta BSL (Business Source License) pean banatzen da.

BSL lizentzia MySQL-ren sortzailekideek proposatu zuten Open Core ereduaren alternatiba gisa. BSL-ren funtsa da funtzionalitate aurreratuen kodea hasieran aldatzeko erabilgarri dagoela, baina denbora batez doan erabil daiteke baldintza gehigarriak betetzen badira, eta horiek saihesteko lizentzia komertziala erostea eskatzen dute. Dragonfly proiektuaren lizentzia-baldintza gehigarriek kodea Apache 2.0 lizentziara transferitzea eskatzen dute 1ko ekainaren 2027ean soilik. Orain arte, lizentziak kodea erabiltzea ahalbidetzen du bere zerbitzu eta produktuen funtzionamendua bermatzeko soilik, baina Dragonfly-ren gehigarri gisa funtzionatzen duten ordaindutako hodeiko zerbitzuak sortzeko erabiltzea debekatzen du.

Garatzaileen eta frogatutako proben arabera, Dragonfly memoria biltegiratze sistema azkarrena dela dio. Redis-ekin alderatuta, Dragonfly-k errendimendua 25 bider handitu zuen eta memoria-kontsumoa hiru aldiz murriztea lortu zuen lan-karga arruntetarako. Dragonfly zerbitzari batek segundoko milioika eskaera prozesatu ditzake, adibidez, Amazon EC2 c6gn.16xlarge ingurunean segundoko 3.8 milioi eskaeraren errendimendua lortu ahal izan zen.

Dragonfly proiektuak Redis eta Memcached-en ordezko azkarragoak garatzen ditu

5 GB datuak gordetzeko probetan, Dragonfly-k Redis-ek baino % 30 memoria gutxiago behar zuen. "bgsave" komandoarekin argazkiak sortzean, memoria-kontsumoa handitzen da, baina momentu gorenetan Redis-en baino ia hiru aldiz gutxiago geratzen da, eta argazkien grabaketa eragiketa bera askoz azkarragoa da (proban, Dragonfly-n argazki bat idatzi zen 30. urtean). segundotan, Redis, berriz, 42 segundotan).

Dragonfly proiektuak Redis eta Memcached-en ordezko azkarragoak garatzen ditu

Errendimendu altua hari anitzeko arkitektura bati esker lortzen da baliabideak partekatu gabe (partekatua-ezer ez), hau da, hari bakoitzari prozesadore bereizi bat esleitzen zaio bere datu-zatiarekin, mutex eta bira-blokeorik gabe lan eginez. Tekla anitzekin lan egitean atomotasuna ziurtatzeko, VLL sarraila arinak erabiltzen dira. Memorian informazioa modu eraginkorrean gordetzeko, marratxoen egitura erabiltzen da, zatitutako hash taula mota bat ezartzen duena.

Lehen bertsioan eskuragarri dauden ezaugarrien artean, RESP2 protokoloaren eta 130 Redis komandoen laguntza nabarmentzen da, gutxi gorabehera Redis 2.8 bertsioaren funtzionaltasunarekin bat datorrena. Horrez gain, Dragonfly-k memcached komando guztiak onartzen ditu CAS izan ezik (check-and-set), argazkiak sortzeko eragiketa asinkronoetarako laguntza eskaintzen du, aurreikus daitekeen memoria-kontsumoa eskaintzen du, Lua 5.4 interprete integratua eskaintzen du eta datu-mota konplexuak onartzen ditu, hala nola hash-ak, multzoak eta zerrendak (ZSET, HSET, LIST, SETS eta STRING).

Cache-modua bereizita dago eskuragarri, eta horrek automatikoki ordezkatzen ditu datu zaharrak datu berriekin, doako memoria agortu ondoren. Posible da datuei bizitza osoa eransteko, zeinetan datuak garrantzitsutzat jotzen diren. Biltegiratze-egoera atzeko planoan diskora hustu daiteke berrabiarazi ondoren gero berreskuratzeko. Sistema kudeatzeko, HTTP kontsola bat eskaintzen da (TCP 6379 atakarekin lotzen da) eta neurketak itzultzeko API bat, Prometheus-ekin bateragarria. Etorkizuneko bertsioetan, Redis komandoetarako laguntza zabaltzea eta akatsen tolerantziarako eta karga orekatzeko biltegiratze-erreplikazio-gaitasunak ezartzea aurreikusten dugu.

Iturria: opennet.ru

Gehitu iruzkin berria