Новая версия Redis 8.8 уже доступна на GitHub. Среди новшеств выделяется структура данных под названием Array, предназначенная для быстрых операций по относительной позиции. Кроме того, она включает улучшения производительности, такие как LTO, включенный по умолчанию в x86_64, более эффективное использование потоков, код на Rust для снижения накладных расходов FFI, оптимизации для ARM64 и пакетную предварительную загрузку. Обновление, нацеленное на эффективность без лишних слов.
Технические детали новой структуры и оптимизаций 🚀
Структура Array позволяет получать доступ и изменять элементы в зависимости от их позиции в наборе, что полезно для очередей или списков с приоритетами. Компиляция с LTO (Link Time Optimization) в x86_64 уменьшает размер бинарного файла и повышает скорость выполнения. Новый код на Rust заменяет критические части FFI, устраняя узкие места в общении между языками. В ARM64 были настроены специальные инструкции для серверов с низким энергопотреблением. Пакетная предварительная загрузка ускоряет загрузку данных в память во время запуска.
У разработчиков тоже есть чувства (и дедлайны) 😅
Сообщество годами просило структуру данных, которая не была бы просто хешем или списком. Теперь, когда появился Array, кто-то обязательно использует его для хранения списков покупок или порядка пополнения холодильника. Что касается Rust, он обещает снизить накладные расходы FFI, хотя всегда найдутся те, кто считает, что проблема была не в FFI, а в кофеварке. А LTO по умолчанию: наконец-то мы сможем компилировать Redis, пока ждем кофе, а не выхода на пенсию.