Gemeinschaft Valkey hat die Veröffentlichung Valkey 9.1 einer neuen stabilen Version einer leistungsstarken Open Source Key-Value-Datenbank (BSD-Lizenz) bekannt gegeben, die verschiedene Nutzungsszenarien wie Caching und Messaging-Queues unterstützt und als primäre Datenbank fungieren kann. Das Projekt wird von der Linux Foundation unterstützt, was seine ständige Verfügbarkeit als Open Source garantiert.
Das Projekt ist ein Fork von Redis und wurde nach Änderungen in dessen Lizenzierung.
entstanden. Diese Version umfasst neue Funktionen, Verbesserungen in den Bereichen Sicherheit, Monitoring, Leistung und Effizienz des Werkzeugs. An der Vorbereitung des Releases waren über 80 Personen beteiligt.
Wesentliche Änderungen
Lua wurde in ein separates Modul ausgelagert.
In Valkey 9.1 wurde die Lua-Skriptsprache vom Hauptserver getrennt und in ein eigenständiges Modul verschoben. Diese Trennung verringert die Angriffsfläche des Valkey-Kernes und ermöglicht es Administratoren, Lua vollständig zu deaktivieren, wenn die Skripte nicht verwendet werden. Um besser nachvollziehen zu können, welche Skriptsprachen im System geladen sind, wurde der INFO-Befehl um einen neuen Abschnitt – Scripting Engines – erweitert.Neue Sicherheitsupdates.
Das stabile Release 9.1.0 enthält Fixes für drei Schwachstellen: Use-after-free im Client-Entsperrmechanismus, unzulässiger Speicherzugriff im Befehl 7RESTORE sowie Use-after-free bei vollständiger Synchronisation während der Ausführung von Lua/function-Code mit Werksverzinsung. Diese Schwachstellen sind als CVE-2026-23479, CVE-2026-25243 und CVE-2026-23631 aufgeführt.Datenbankebene ACL.
Ein Zugriffssteuerungssystem auf Ebene einzelner Datenbanken wurde hinzugefügt. Dies ermöglicht eine feinere Trennung der Rechte in Mehrbenutzerkonfigurationen und beschränkt sich nicht nur auf globale Zugriffsregeln auf Ebene des gesamten Valkey-Instances.Automatische Neustartfunktion für TLS-Zertifikate.
Valkey 9.1 unterstützt jetzt die automatische Neuinstallation von TLS-Zertifikaten. Für Administratoren bedeutet dies weniger manuelle Vorgänge bei der Rotation von Zertifikaten und eine benutzerfreundlichere Verwaltung sicherer Installationen.Neuer Befehl HGETDEL.
Dieser Befehl ruft atomar ein oder mehrere Felder aus einer Hash-Struktur ab und entfernt sie. Der praktische Nutzen liegt in Szenarien, die wie Warteschlangen oder einmalige Datenverwendung funktionieren, in denen zuvor HGET und HDEL über eine Transaktion kombiniert werden mussten.Neuer Befehl MSETEX.
MSETEX ermöglicht es, mehrere Schlüssel mit einer gemeinsamen Lebensdauer in einem einzigen Befehl zu setzen. Früher waren dafür mehrere SETEX-Aufrufe oder eine Kombination aus SET und EXPIRE über eine Pipeline erforderlich. Der neue Befehl reduziert die Anzahl der Aufrufe und vereinfacht den typischen Code für Sitzungen und temporäre Daten.Neuer Befehl CLUSTERSCAN.
In den Clustern gibt es ein einheitliches Team zum Scannen von Schlüsseln über alle Knoten. Früher mussten die Kunden SCAN auf jedem Knoten selbst ausführen und die Ergebnisse zusammenführen. CLUSTERSCAN vereinfacht die Kundenbibliotheken, Administrationswerkzeuge und operationale Aufgaben wie das Suchen von Schlüsseln nach Muster oder Typ im gesamten Cluster.Optimierung des Speicherverbrauchs von Zeichenfolgen.
Durch interne Optimierungen bei Zeigern für Zeichenfolgen kürzer als 128 Byte wird eine Reduzierung des Speicherverbrauchs um bis zu 20 % gemeldet. Dies ist besonders wichtig für typische Caching-Lasten, bei denen eine große Anzahl kleiner Werte gespeichert wird.Weniger Speicher für sortierte Mengen.
Optimierungen der Skiplist-Strukturen reduzieren den Speicherverbrauch für sortierte Mengen um bis zu 10 %. Darüber hinaus wurden die Operationen mit sortierten Mengen beschleunigt, einschließlich Abfragen wie ZRANGEBYSCORE und ZRANGEBYLEX.Beschleunigte Arbeit mit Rehashing.
Die interne Neuzuordnung von Hash-Tabellen, die häufig beim Wachstum des keyspace auftritt, wurde optimiert, um Verzögerungen zu reduzieren. In den Versionshinweisen wird ebenfalls eine Verringerung von latency spikes durch inkrementelles Seiten-Release erwähnt.Verbessertes Modell für I/O-Threading.
Im Release-Kandidaten 9.1.0-rc2 wurde das Modell für die Interaktion von Ein- und Ausgabe-Streams mit lock-freien Warteschlangen überarbeitet. In den Hinweisen wird eine Erhöhung der Durchsatzrate um 8–17 % angegeben.Optimierung von GET und SET.
Valkey verwendet jetzt standardmäßig Hardware-Zeitgeber, wo immer dies möglich ist, was die Systemaufrufkosten in Bezug auf Zeit senkt. Das Projekt berichtet von einer Leistungssteigerung bei GET und SET von bis zu 3 % insgesamt.Schnellere Massenlöschvorgänge.
Bei Operationen wie SREM, ZREM und HDEL pausiert Valkey jetzt vorübergehend die interne Größenänderung von Hash-Tabellen, um überflüssiges Rehashing zu vermeiden und das Massenlöschen von Elementen zu beschleunigen.Effizientere Replikation bei AOF.
Bei der Replikation mit aktiviertem AOF wird jetzt die erhaltene RDB-Datei wiederverwendet, anstatt einen neuen Snapshot für die anfängliche AOF-Basisdatei zu generieren. Dies sollte die zusätzliche Belastung beim Bereitstellen von Replikaten verringern.Verbesserungen von valkey-cli und valkey-benchmark.
Im valkey-cli wurde die Unterstützung für die atomare Slot-Migration über den Parameter —cluster-use-atomic-slot-migration für die Operationen —cluster rebalance und —cluster reshard hinzugefügt. Im valkey-benchmark wurde die Ausgabe der RPS-Verteilung sowie die Parameter —warmup und —duration eingeführt, was die Leistungsbewertung besser steuerbar macht.
Separat zusammen mit Valkey 9.1 in dem Ökosystem werden verwandte Projekte vorangetrieben: Valkey Admin zur visuellen Verwaltung von Clustern, Valkey Search 1.2 mit Volltextsuche, numerischen Filtern, Tags und Vektorsuche, sowie der Client-Bibliothek Valkey GLIDE.
Valkey 9.1 – ein bedeutendes Update in Bezug auf die Betriebsführung: weniger Speicherverbrauch bei typischen Strukturen, geringere Latenzen bei internen Umstrukturierungen, neue Befehle für Cluster und zeitbasierte Daten sowie ein präziseres Sicherheitsmodell für Produktionsinstallationen.
Quelle: linux.org.ru
