Den Dragonfly Projet entwéckelt e méi séier Ersatz fir Redis a Memcached

Déi éischt Verëffentlechung vum Dragonfly In-Memory Caching System ass verfügbar, bitt Ënnerstëtzung fir d'Memcached a Redis Protokoller, awer erlaabt Ufroe mat vill méi héijer Leeschtung a manner Erënnerungsverbrauch auszeféieren. De System manipuléiert Daten am Schlëssel / Wäertformat a kann als liicht Léisung benotzt ginn fir d'Aarbecht vun héichbelaaschte Siten ze beschleunegen, lues Ufroen op d'DBMS an Zwëschendaten am RAM ze cachen. 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 vum Dragonfly Projet erfuerderen datt de Code nëmmen den 2.0. Juni 1 op d'Apache 2027 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.

Laut den Entwéckler a demonstréiert Tester behaapt Dragonfly de schnellsten Erënnerungsspeichersystem ze sinn. Am Verglach mam Redis huet Dragonfly eng 25-fach Erhéijung vun der Leeschtung an eng dräifach Reduktioun vum Gedächtnisverbrauch fir typesch Aarbechtslaascht erreecht. One Dragonfly Server kann Millioune Ufroen pro zweet Prozess, Zum Beispill, am Amazon EC2 c6gn.16xlarge Ëmfeld war et méiglech eng Leeschtung vun 3.8 Milliounen Demanden pro Sekonn ze erreechen.

Den Dragonfly Projet entwéckelt e méi séier Ersatz fir Redis a Memcached

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

Den Dragonfly Projet entwéckelt e méi séier Ersatz fir Redis a Memcached

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.

Ënnert de Funktiounen, déi an der éischter Verëffentlechung verfügbar sinn, gëtt Ënnerstëtzung fir de RESP2 Protokoll an 130 Redis Kommandoen bemierkt, wat ongeféier der Funktionalitéit vun der Redis 2.8 Verëffentlechung entsprécht. Zousätzlech ënnerstëtzt Dragonfly all memcached Kommandoen ausser CAS (Check-and-Set), stellt Ënnerstëtzung fir asynchron Operatiounen fir Schnappschëss ze kreéieren, stellt prévisibel Erënnerungsverbrauch, bitt en agebaute Lua 5.4 Dolmetscher an ënnerstëtzt komplex Datentypen wéi Hashes, Sets a Lëschten (ZSET, HSET, LIST, SETS a STRING).

E Caching-Modus ass separat verfügbar, deen automatesch al Donnéeën duerch nei Donnéeën ersetzt nodeems de fräie Gedächtnis erschöpft ass. Et ass méiglech eng Liewensdauer un d'Donnéeën ze befestegt während deenen d'Donnéeën als relevant ugesi ginn. De Späicherzoustand kann op den Disk am Hannergrond gespullt ginn fir spéider Erhuelung nom Restart. Fir de System ze verwalten, gëtt eng HTTP-Konsole geliwwert (bindt un den TCP-Port 6379) an eng API fir Metriken zréckzekommen, kompatibel mat Prometheus. An zukünfteg Versioune plangen mir d'Ënnerstëtzung fir Redis Kommandoen auszebauen an d'Fäegkeet ëmzesetzen fir d'Späichere ze replizéieren fir Feeler Toleranz a Laaschtbalancéierung ze bidden.

Source: opennet.ru

Setzt e Commentaire