Dragonfly, ein RAM-Daten-Caching-System

DragonFly

Dragonfly ist ein In-Memory-Datenspeicher, der für moderne Anwendungsworkloads entwickelt wurde.

Vor wenigen Tagen wurde es bekannt gegeben Veröffentlichung des In-Memory-Caching- und Datenspeichersystems Dragonfly, das Daten im Schlüssel/Wert-Format manipuliert und als leichte Lösung zur Beschleunigung von Websites mit hoher Auslastung verwendet werden kann, indem langsame Abfragen an das DBMS und Zwischendaten im RAM zwischengespeichert werden.

Libelle unterstützt Memcached- und Redis-Protokolle, So können Sie vorhandene Client-Bibliotheken verwenden und Projekte mit Memcached und Redis auf Dragonfly portieren, ohne Ihren Code überarbeiten zu müssen.

Es ist erwähnenswert, dass Dragonfly Kürzlich ein Update erhalten, erreicht seine Version 1.0 und in welcher zeichnet sich durch die Implementierung der Unterstützung für die Datenreplikation aus vom primären zum sekundären Server.

Gleichzeitig Libelle kann als Sekundärspeicher konfiguriert werden der Daten vom Hauptserver auf Basis von Dragonfly und Redis akzeptiert. Die Replikationsverwaltungs-API ist mit Redis kompatibel und basiert auf der Verwendung der Befehle ROLE und REPLICAOF (SLAVEOF).

Über Libelle

Dank einer Multithread-Architektur wird eine hohe Leistung erreicht ohne Ressourcen zu teilen (shared-nothing), was bedeutet, dass jedem Thread ein separater Controller mit eigenen Daten angehängt wird, was ohne Mutexe oder Spin-Locks funktioniert.

Leichte VLL-Sperren werden verwendet, um beim Umgang mit mehreren Schlüsseln Atomarität zu gewährleisten, da zum effizienten Speichern der Informationen im Speicher die Dashtable-Struktur verwendet wird, die eine Art partitionierter Hash-Tabellen implementiert.

Im Vergleich zu Redis bietet Dragonfly eine 25-fache Leistungssteigerung (3,8 Millionen Anfragen pro Sekunde) unter typischen Workloads in einer Amazon EC2 c6gn.16xlarge-Umgebung. Im Vergleich zu Memcached in einer AWS c6gn.16xlarge-Umgebung konnte Dragonfly 4,7-mal mehr Schreibanfragen pro Sekunde (3,8 Millionen vs. 806k) und 1,77-mal mehr Leseanfragen pro Sekunde (3,7 Millionen vs. 2,1 Millionen) ausführen.

In 5-GB-Speichertests Dragonfly benötigte 30 % weniger Arbeitsspeicher als Redis. Während der Snapshot-Erstellung mit dem Befehl „bgsave“ steigt der Speicherverbrauch, der aber zu Spitzenzeiten fast dreimal geringer gehalten wird als in Redis, und der Snapshot-Schreibvorgang selbst ist viel schneller (im Fall von Redis).test, a Snapshot wurde auf Dragonfly in 30 Sekunden und Redis in 42 Sekunden geschrieben).

Einige Dragonfly-Funktionen sind:

  • Ein Caching-Modus, der alte Daten automatisch durch neue Daten ersetzt, sobald der freie Speicherplatz erschöpft ist.
  • Unterstützung von Datenbindungslebenszyklen, in denen Daten als aktuell betrachtet werden.
  • Unterstützung für das Leeren des Speicherstatus auf die Festplatte im Hintergrund für eine spätere Wiederherstellung nach einem Neustart.
  • Das Vorhandensein einer HTTP-Konsole (Bindung an TCP-Port 6379) für die Systemverwaltung und eine API für die Rückgabe von Metriken, kompatibel mit Prometheus.
  • Unterstützung für 185 Redis-Befehle, was ungefähr der Funktionalität der Redis 5-Version entspricht.
  • Unterstützung für alle Memcached-Befehle außer CAS (Verifizieren und Konfigurieren).
  • Unterstützung für asynchrone Vorgänge zum Erstellen von Snapshots.
  • Vorhersehbarer Speicherverbrauch.
  • Integrierter Lua-Interpreter 5.4.
  • Unterstützung für komplexe Datentypen wie Hashes, Sets, Listen (ZSET, HSET, LIST, SETS und STRING) und JSON-Daten.
  • Speicherreplikationsunterstützung für Failover und Lastenausgleich.

Für diejenigen, die sich für den Dragonfly-Code interessieren, sollten Sie dies wissen ist in C/C++ geschrieben und wird vertrieben unter die Lizenz BSL .Das Wesen von BSL besteht darin, dass der Code mit erweiterter Funktionalität zunächst zur Änderung verfügbar ist, aber für einige Zeit nur unter zusätzlichen Bedingungen kostenlos verwendet werden kann, die den Kauf einer kommerziellen Lizenz erfordern, um sie zu umgehen.

Die zusätzlichen Lizenzbedingungen des Dragonfly-Projekts erfordern, dass der Code am 2.0. März 15 auf die Apache-Lizenz 2028 migriert wird. Bis dahin erlaubt die Lizenz die Verwendung des Codes nur, um den Betrieb seiner Dienste und Produkte sicherzustellen, verbietet jedoch die Verwendung zum Erstellen von kostenpflichtigen Cloud-Dienste, die als Plug-in für Dragonfly fungieren.

Schließlich wenn Sie daran interessiert sind, etwas mehr darüber zu erfahrenkönnen Sie die Details in der überprüfen folgenden Link


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.