Die neue Version von Redis, 8.8, ist jetzt auf GitHub verfügbar. Zu den Neuerungen gehört eine Datenstruktur namens Array, die für schnelle Operationen nach relativer Position ausgelegt ist. Darüber hinaus enthält sie Leistungsverbesserungen wie standardmäßig aktiviertes LTO auf x86_64, eine effizientere Nutzung von Threads, Rust-Code zur Reduzierung des FFI-Overheads, Optimierungen für ARM64 und Batch-Prefetching. Ein Update, das ohne Umschweife auf Effizienz abzielt.
Technische Details der neuen Struktur und Optimierungen 🚀
Die Array-Struktur ermöglicht den Zugriff auf und die Änderung von Elementen basierend auf ihrer Position im Set, was für Warteschlangen oder Prioritätslisten nützlich ist. Die Kompilierung mit LTO (Link Time Optimization) auf x86_64 reduziert die Binärgröße und verbessert die Ausführungsgeschwindigkeit. Der neue Rust-Code ersetzt kritische Teile des FFI und beseitigt Engpässe in der Kommunikation zwischen Sprachen. Auf ARM64 wurden spezifische Anweisungen für stromsparende Server optimiert. Das Batch-Prefetching beschleunigt das Laden von Daten in den Speicher während des Starts.
Entwickler haben auch Gefühle (und Deadlines) 😅
Die Community fordert seit Jahren eine Datenstruktur, die nicht nur ein einfacher Hash oder eine Liste ist. Jetzt, wo das Array kommt, wird es sicher jemand verwenden, um Einkaufslisten oder die Reihenfolge der Nachfüllungen im Kühlschrank zu speichern. Das mit Rust verspricht, den FFI-Overhead zu reduzieren, auch wenn es immer Leute gibt, die denken, das Problem sei nicht das FFI, sondern die Kaffeemaschine. Und das mit LTO standardmäßig: Endlich können wir Redis kompilieren, während wir auf den Kaffee warten, nicht auf die Rente.