Verëffentlechung vum Dragonfly 1.0, en In-Memory Data Caching System

D'Dragonfly In-Memory Caching a Späichersystem gouf verëffentlecht, wat Daten am Schlëssel / Wäertformat manipuléiert a kann als liicht Léisung benotzt ginn fir d'Aarbecht vun héich gelueden Siten ze beschleunegen, lues Ufroen op d'DBMS an Zwëschendaten am RAM ze cachen. Dragonfly ënnerstëtzt d'Memcached a Redis Protokoller, wat Iech erlaabt existent Clientbibliothéiken ze benotzen an Projete mat Memcached a Redis op Dragonfly ze transferéieren ouni de Code z'änneren.

Am Verglach zu Redis huet Dragonfly eng 2-fach Erhéijung vun der Leeschtung (6 Milliounen Ufroen pro Sekonn) fir typesch Aarbechtslaascht am Amazon EC16 c25gn.3.8xlarge Ëmfeld erreecht. Am Verglach mam Memcached am AWS c6gn.16xlarge Ëmfeld konnt Dragonfly 4.7 Mol méi Schreiffuerderunge pro Sekonn maachen (3.8 Millioune versus 806 Tausend) an 1.77 Mol méi liesen Ufroen pro Sekonn (3.7 Millioune géint 2.1 Milliounen).

Verëffentlechung vum Dragonfly 1.0, en In-Memory Data Caching System

An Tester fir 5 GB vun Daten ze späicheren, huet Dragonfly 30% manner Erënnerung erfuerdert wéi Redis. Wann Dir Snapshots mam Kommando "bgsave" erstellt, erhéicht de Gedächtnisverbrauch, awer an de Spëtzmomenter blouf et bal dräimol manner wéi am Redis, an d'Snapshot-Opnamoperatioun selwer ass vill méi séier (am Test gouf e Snapshot am Dragonfly am 30 geschriwwen Sekonnen, iwwerdeems Redis - an 42 Sekonnen).

Verëffentlechung vum Dragonfly 1.0, en In-Memory Data Caching System

Héich Performance gëtt erreecht duerch eng Multi-threaded Architektur ouni Ressourcen ze deelen (shared-näischt), dat heescht datt all Fuedem e separaten separaten Prozessor mat sengem eegenen Deel vun Donnéeën zougewisen gëtt, ouni Mutexen a Spin Spären ze schaffen. Fir Atomitéit ze garantéieren wann Dir mat méi Schlësselen schafft, gi liicht VLL-Schlässer benotzt. Fir effizient Informatioun an der Erënnerung ze späicheren, gëtt d'Dashtable Struktur benotzt, déi eng Zort vu partitionéierten Hash-Tabelle implementéiert.

E puer Features vum Dragonfly:

  • Caching Modus, deen automatesch al Donnéeën duerch nei Donnéeën ersetzt nodeems de fräie Gedächtnis erschöpft ass.
  • Ënnerstëtzung fir Bindung un Daten eng Liewensdauer wärend d'Donnéeën als relevant ugesi ginn.
  • Ënnerstëtzung fir de Späicherzoustand op den Disk am Hannergrond ze spülen fir spéider Erhuelung nom Restart.
  • D'Präsenz vun enger HTTP-Konsole (bindt un den TCP-Port 6379) fir Systemmanagement an eng API fir Metriken zréckzekommen, kompatibel mat Prometheus.
  • Ënnerstëtzung fir 185 Redis Kommandoen, wat ongeféier gläichwäerteg ass mat der Funktionalitéit vun der Redis 5 Verëffentlechung.
  • Ënnerstëtzt all Memcached Kommandoen ausser CAS (check-and-set).
  • Ënnerstëtzung fir asynchron Operatiounen fir Snapshots ze kreéieren.
  • Prévisibel Erënnerung Konsum.
  • Built-in Lua 5.4 Dolmetscher.
  • Ënnerstëtzt komplex Datentypen wéi Hashes, Sets, Lëschten (ZSET, HSET, LIST, SETS a STRING) an JSON Daten.
  • Ënnerstëtzt Späicherreplikatioun fir Feelertoleranz a Laaschtbalancéierung.

Den Dragonfly Code ass an C/C++ geschriwwen a gëtt ënner der BSL (Business Source License) verdeelt. D'BSL Lizenz gouf vun de Matgrënner vu MySQL als Alternativ zum Open Core Modell proposéiert. D'Essenz vun BSL ass, datt de Code vun fortgeschratt Funktionalitéit am Ufank fir Ännerung sinn ass, mä fir eng Zäit kann gratis benotzt ginn nëmmen wann zousätzlech Konditiounen erfëllt sinn, déi de Kaf vun enger kommerziell Lizenz verlaangen ëmgoen. Zousätzlech Lizenzbedéngungen fir den Dragonfly Projet erfuerderen datt de Code de 2.0. Mäerz 15 op d'Apache 2028 Lizenz transferéiert gëtt. Bis zu dëser Zäit erlaabt d'Lizenz d'Benotzung vum Code nëmmen fir d'Operatioun vu senge Servicer a Produkter ze garantéieren, awer verbitt d'Benotzung fir d'Schafe vu bezuelte Cloud-Servicer, déi als Add-on op Dragonfly handelen.

Versioun Dragonfly 1.0 ass bemierkenswäert fir seng Ëmsetzung vun der Ënnerstëtzung fir Datereplikatioun vum primäre Server op de sekundären. Wéi och ëmmer, Dragonfly kann konfiguréiert ginn fir als sekundär Späichere benotzt ze ginn déi Daten vun engem primäre Server kritt entweder baséiert op Dragonfly oder baséiert op Redis. D'Replikatiounsmanagement API ass kompatibel mat Redis a baséiert op der Notzung vun de ROLE a REPLICAOF (SLAVEOF) Kommandoen.

Source: opennet.ru

Setzt e Commentaire