Release fan Dragonfly 1.0, in yn-ûnthâld data caching systeem

De Dragonfly yn-ûnthâld caching en opslach systeem is frijjûn, dat manipulearret gegevens yn kaai / wearde opmaak en kin brûkt wurde as in lichtgewicht oplossing foar it fersnellen fan it wurk fan tige laden siden, caching trage queries nei de DBMS en tuskenlizzende gegevens yn RAM. Dragonfly stipet de Memcached- en Redis-protokollen, wêrtroch jo besteande kliïntbiblioteken kinne brûke en projekten oerdrage mei Memcached en Redis nei Dragonfly sûnder de koade opnij te bewurkjen.

Yn ferliking mei Redis berikte Dragonfly in 2-fâldige ferheging fan prestaasjes (6 miljoen oanfragen per sekonde) foar typyske workloads yn 'e Amazon EC16 c25gn.3.8xlarge omjouwing. Yn ferliking mei Memcached yn 'e AWS c6gn.16xlarge omjouwing koe Dragonfly 4.7 kear mear skriuwfersiken per sekonde útfiere (3.8 miljoen tsjin 806 tûzen) en 1.77 kear mear lêsfersiken per sekonde (3.7 miljoen tsjin 2.1 miljoen).

Release fan Dragonfly 1.0, in yn-ûnthâld data caching systeem

Yn tests foar it bewarjen fan 5 GB fan gegevens, easke Dragonfly 30% minder ûnthâld as Redis. By it meitsjen fan snapshots mei it kommando "bgsave" nimt it ûnthâldferbrûk ta, mar op pykmominten bleau it hast trije kear minder as yn Redis, en de snapshot-opname operaasje sels is folle flugger (yn 'e test waard in momintopname yn Dragonfly skreaun yn 30 sekonden, wylst Redis - yn 42 sekonden).

Release fan Dragonfly 1.0, in yn-ûnthâld data caching systeem

Hege prestaasje wurdt berikt troch in multi-threaded arsjitektuer sûnder dielen fan boarnen (dield-neat), wat betsjut dat elke tried wurdt tawiisd in aparte aparte prosessor mei in eigen diel fan gegevens, wurkje sûnder mutexes en spin slûzen. Om atomiteit te garandearjen by it wurkjen mei meardere kaaien, wurde lichtgewicht VLL-slûzen brûkt. Om ynformaasje effisjint yn it ûnthâld op te slaan, wurdt de dashtabelstruktuer brûkt, dy't in soarte fan partitioneare hash-tabel ymplementearret.

Guon funksjes fan Dragonfly:

  • Caching modus, dy't automatysk ferfangt âlde gegevens mei nije gegevens neidat it frije ûnthâld is útput.
  • Stipe foar bining oan gegevens in libben lang wêryn de gegevens as relevant wurde beskôge.
  • Stipe foar it spoelen fan opslachstatus nei skiif op 'e eftergrûn foar letter herstel nei werstart.
  • De oanwêzigens fan in HTTP-konsole (bynt oan TCP-poarte 6379) foar systeembehear en in API foar weromkommende metriken, kompatibel mei Prometheus.
  • Stipe foar 185 Redis-kommando's, wat sawat gelyk is oan de funksjonaliteit fan 'e Redis 5-release.
  • Unterstützt alle Memcached-kommando's útsein CAS (check-and-set).
  • Stipe foar asynchrone operaasjes foar it meitsjen fan snapshots.
  • Foarsisber ûnthâld konsumpsje.
  • Ynboude Lua 5.4-tolk.
  • Unterstützt komplekse gegevenstypen lykas hashes, sets, listen (ZSET, HSET, LIST, SETS en STRING) en JSON-gegevens.
  • Unterstützt opslachreplikaasje foar fouttolerânsje en loadbalancing.

De Dragonfly-koade is skreaun yn C / C ++ en wurdt ferspraat ûnder de BSL (Business Source License). De BSL-lisinsje waard foarsteld troch de mei-oprjochters fan MySQL as alternatyf foar it Open Core-model. De essinsje fan BSL is dat de koade fan avansearre funksjonaliteit yn earste ynstânsje beskikber is foar wiziging, mar in skoft kin allinich fergees brûkt wurde as oanfoljende betingsten foldien wurde, dy't de oankeap fan in kommersjele lisinsje fereaskje om te omgean. Oanfoljende lisinsjebetingsten foar it Dragonfly-projekt fereaskje dat de koade op 2.0 maart 15 wurdt oerbrocht nei de Apache 2028-lisinsje. Oant dizze tiid lit de lisinsje it gebrûk fan 'e koade allinich ta om de wurking fan har tsjinsten en produkten te garandearjen, mar ferbiedt gebrûk foar it meitsjen fan betelle wolktsjinsten dy't fungearje as tafoeging oan Dragonfly.

Dragonfly 1.0 is opmerklik foar syn ymplemintaasje fan stipe foar gegevensreplikaasje fan 'e primêre ... server nei in sekundêre server. Dragonfly kin konfigurearre wurde om te fungearjen as in sekundêre opslach, en gegevens te ûntfangen fan in primêre server basearre op Dragonfly of Redis. De replikaasjebehear-API is kompatibel mei Redis en is basearre op de ROLE- en REPLICAOF-kommando's (SLAVEOF).

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster