Dragonfly, ein Projekt, das behauptet, der schnellere Ersatz für Redis und Memcached zu sein

Die Nachricht wurde veröffentlicht die erste Version ist bereits verfügbar In-Memory-Daten-Caching-System Dragonfly, das die Protokolle Memcached und Redis unterstützt, aber es ermöglicht die Ausführung von Abfragen mit viel höherer Leistung und weniger Speicherverbrauch.

Das System verarbeitet Daten im Schlüssel/Wert-Format und kann als leichtgewichtige Lösung verwendet werden, um stark ausgelastete Websites zu beschleunigen, langsame Abfragen im DBMS zwischenzuspeichern und Zwischendaten im RAM zwischenzuspeichern.

Die BSL wurde von den Mitbegründern von MySQL vorgeschlagen als Alternative zum Open-Core-Modell. Die Essenz von BSL besteht darin, dass der Code für erweiterte 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 zur Umgehung erfordern.

Die zusätzlichen Lizenzbedingungen des Dragonfly-Projekts erfordern, dass der Code erst zum 2.0. Juni 1 auf die Apache-2027-Lizenz umgestellt wird. Bis zu diesem Zeitpunkt erlaubt die Lizenz die Nutzung des Codes nur, um den Betrieb seiner Dienste und Produkte sicherzustellen, aber verbietet die Verwendung zur Erstellung kostenpflichtiger Cloud-Dienste, die als Add-On für Dragonfly fungieren.

Libelle behauptet, das schnellste Speichersystem der Welt zu sein, laut Entwicklern und Benchmarks. Im Vergleich zu Redis erreichte Dragonfly eine 25-fache Leistungssteigerung und eine 3-fache Reduzierung des Speicherverbrauchs bei typischen Arbeitslasten. Ein einzelner Dragonfly-Server kann Millionen von Anfragen pro Sekunde verarbeiten, beispielsweise wurde in einer Amazon EC2 c6gn.16xlarge-Umgebung ein Durchsatz von 3,8 Millionen Anfragen pro Sekunde erreicht.

In 5-GB-Speichertests benötigte Dragonfly 30 % weniger Speicher als Redis. Beim Erstellen von Snapshots mit dem Befehl "bgsave" steigt der Speicherverbrauch, wird aber zu Spitzenzeiten fast dreimal geringer gehalten als in Redis, und der Snapshot-Schreibvorgang selbst ist viel schneller (im Test wurde ein Snapshot in Dragonfly in 30 Sekunden und Redis - in 42 Sekunden).

Dank einer Multithread-Architektur wird eine hohe Leistung erreicht keine gemeinsam genutzten Ressourcen ( shared-nothing ), was impliziert, dass jedem Thread ein separater und unabhängiger Controller mit eigenen Daten zugeordnet ist, der ohne Mutexe oder Spin-Locks arbeitet. Leichte VLL-Schlösser werden verwendet, um die Unteilbarkeit beim Umgang mit mehreren Schlüsseln sicherzustellen. Um Informationen effizient im Speicher zu speichern, wird die Dashtable-Struktur verwendet, die eine Art partitionierte Hash-Tabellen implementiert.

Von den verfügbaren Funktionen in Die erste Version hebt die Unterstützung für das RESP2-Protokoll und 130 Redis-Befehle hervor, was in etwa der Funktionalität des Releases Redis 2.8 entspricht.

Zusätzlich Dragonfly unterstützt alle Memcached-Befehle außer CAS (verify and set), bietet Unterstützung für asynchrone Operationen zum Erstellen von Snapshots, bietet vorhersagbaren Speicherverbrauch, bietet einen integrierten Lua 5.4-Interpreter und unterstützt komplexe Datentypen wie Hashes, Sets und Listen (ZSET, HSET, LIST, SETS , und STRING).

Separat ist ein Caching-Modus verfügbar, bei dem alte Daten automatisch durch neue Daten ersetzt werden, sobald der freie Speicherplatz erschöpft ist. Es ist möglich, die Daten für das Leben zu verknüpfen, in dem die Daten als relevant angesehen werden.

Der Speicherstatus kann im Hintergrund zur späteren Wiederherstellung nach einem Neustart auf die Festplatte geleert werden. Zur Verwaltung des Systems werden eine HTTP-Konsole (Bindung an TCP-Port 6379) und eine API zur Rückgabe Prometheus-konformer Metriken bereitgestellt. In zukünftigen Versionen planen wir, die Unterstützung für Redis-Befehle zu erweitern und die Möglichkeit zu implementieren, Speicher für Failover und Lastenausgleich zu replizieren.

Wenn Sie mehr darüber erfahren möchten, sollten Sie schließlich wissen, dass der Dragonfly-Code in C/C++ geschrieben ist und unter der BSL-Lizenz (Business Source License) vertrieben wird.

Sie können sich über das Projekt beraten lassen im 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.