Es wurde angekündigt Veröffentlichung der neuen Version von «Valkey 8.1», ein Fork von Redis, der nach der Umstellung auf eine proprietäre Lizenz entstand und der versucht, die offene Philosophie des ursprünglichen Projekts beizubehalten.
Valkey 8.1 Es bietet eine große Anzahl von Verbesserungen und Änderungen, dessen Hauptaugenmerk auf Leistungsoptimierungen liegt, die die Latenz reduzieren, die Speichereffizienz erhöhen und neue modulare Funktionen bieten.
Wichtige neue Funktionen in Valkey 8.1
Uno der wichtigsten Änderungen in dieser Version ist die vollständiges Neuschreiben der Hash-Tabelle, wird sowohl in der Schlüssel-Wert-Datenspeicherung als auch in strukturierten Datentypen wie Hash, Set und Sorted Set verwendet. Dank dieser Neugestaltung Eine Reduzierung des Speicherverbrauchs wurde erreicht: 20 Bytes weniger pro Schlüssel ohne TTL, und bis zu 30 Bytes, wenn der Schlüssel eine definierte Lebensdauer hat. Darüber hinaus hat die Reduzierung des wahlfreien Speicherzugriffs zu einer Leistungssteigerung von 10 % in Single-Thread-E/A-Umgebungen geführt.
Eine weitere Neuerung in Valkey 8.1 ist die Iteration über Schlüssel in Operationen wie dem KEYS-Befehl oder Die Schlüsselübertragung zwischen Knoten in einem Cluster verfügt nun über ein Cache-Vorladesystem, Dadurch steht der nächste Schlüssel zur Verfügung, bevor die Verarbeitung beginnt. Dieser Ansatz hat die Schlüsselsuchgeschwindigkeit durch eine bessere Nutzung des Prozessorcaches um das 3,5-fache erhöht.
Multithreaded I/O und TLS-Verbesserungen
Valkey setzt seinen Übergang zu einem Multithread-E/A-Modell fort. Nun, die Die TLS-Verbindungsverarbeitung erfolgt in separaten Streams, wodurch die Kapazität zur Aufnahme neuer Verbindungen verdreifacht wurde. Funktionen wie SSL_pending() und ERR_clear_error() wurden ebenfalls in separate Threads isoliert, was zu einer Leistungssteigerung von 10 % bei SET-Operationen und 22 % bei GET-Operationen führte.
Die Replikation wurde verbessert, insbesondere in Umgebungen mit aktivem TLS, wodurch redundante Vorgänge wie unnötige Prüfsummen vermieden werden. Dies führte zu einer Verbesserung der vollständigen Synchronisierung während der plattenlosen Replikation um 18 % und einer Reduzierung der Kosten für Kopier- und Schreibvorgänge um 47 %.
Optimierungen für geordnete Mengen und probabilistische Typen
El ZRANK-Befehl für geordnete Mengen wurde optimiert und Es ist jetzt 45% schneller, während ZADD SIMD-Anweisungen übernommen hat um eine höhere Effizienz zu erreichen. Für probabilistische Datentypen wurde die Verwendung von HyperLogLog dahingehend verbessert, dass nur noch 12 KB fester Speicher verwendet werden. Durch die Verwendung von AVX2-Anweisungen konnte die Leistung von PFMERGE- und PFCOUNT-Operationen um das bis zu Zwölffache und von BITCOUNT um das bis zu Fünffache gesteigert werden.
Unterbrechungsfreie aktive Defragmentierung und mehr Kontrolle über Registrierungen
El Das aktive Defragmentierungssystem wurde ebenfalls verbessert um Blockaden oder Verzögerungen zu vermeiden. Jetzt dauert jeder Defragmentierungszyklus nur noch 500 Mikrosekunden, Um zu verhindern, dass diese Aufgaben aufgrund langwieriger Operationen aufgeschoben werden, wurde eine Strategie gegen den Hunger implementiert.
Wurde vorgestellt Neue Konfigurationsmöglichkeiten zur Datensatzformatierung, einschließlich benutzerdefinierter Zeitformate und eines neuen COMMANDLOG-Modus, der lange Anfragen und Antworten protokolliert. Darüber hinaus wurde der Befehl LATENCY LATEST um neue Messwerte erweitert, die eine bessere Transparenz der aufgezeichneten Spitzen- und Volumenlatenzen bieten.
Neue Funktionen, Module und Support
Valkey ermöglicht Ihnen nun die Ausführung der Operation SET IFEQ, was das Schreiben eines Schlüssels auf den aktuellen Wert bedingt. Auch Modulare Unterstützung für Skript-Engines wird eingeführt, wodurch die Möglichkeit eröffnet wird, über benutzerdefinierte Module alternative Sprachen zu Lua zu verwenden.
In dieser Version auch mehrere Module debütieren:
- Suchmodul (Google): Suchmaschine für Vektorähnlichkeiten, ideal für maschinelles Lernen, die geringe Latenz und hohen Durchsatz erfordern.
- JSON-Modul (AWS): ermöglicht die direkte Manipulation von JSON-Dokumentfragmenten und vermeidet so die vollständige Verarbeitung des Inhalts auf dem Client.
- Bloom-Filtermodul (AWS): Implementierung von Bloom-Filtern, nützlich zur Bestimmung der möglichen Zugehörigkeit eines Elements zu einer Menge mit probabilistischer Effizienz
Wenn Sie daran interessiert sind, mehr darüber zu erfahren, können Sie die Details im folgenden Link