☁️ Cloudflare сэкономила 100 ТБ RAM, переписав алгоритм хеширования на Rust
Инженеры Cloudflare сократили потребление памяти одним из сервисов на базе Pingora более чем на 100 ТБ по всему миру - только за счёт математической оптимизации алгоритма консистентного хеширования в библиотеке pingora-ketama.
Проблема обнаружилась в Pingora Backend Router: структуры, связанные с консистентным хешированием, занимали неоправданно много памяти. Классический алгоритм ketama хранит по 160 хешей на каждый сервер, чтобы выровнять нагрузку, - но при тысячах узлов и миллионах ключей это превращается в петабайты «мусорных» точек на числовой прямой.
Команда пересмотрела формулу распределения: вместо фиксированного числа хешей на сервер применяется взвешенная схема, где количество точек пропорционально реальному объёму диска узла. Это дало равномерную нагрузку без избыточных структур в памяти. Решение открыто в библиотеке pingora-ketama на Rust.
Для разработчиков это готовый рецепт: если вы строите балансировщик или кэш на консистентном хешировании, вес узлов и число виртуальных точек - главный рычаг экономии RAM. Cloudflare уже выложила код в open source.
#Cloudflare #Rust #Pingora #ConsistentCaching #Infrastructure
Инженеры Cloudflare сократили потребление памяти одним из сервисов на базе Pingora более чем на 100 ТБ по всему миру - только за счёт математической оптимизации алгоритма консистентного хеширования в библиотеке pingora-ketama.
Проблема обнаружилась в Pingora Backend Router: структуры, связанные с консистентным хешированием, занимали неоправданно много памяти. Классический алгоритм ketama хранит по 160 хешей на каждый сервер, чтобы выровнять нагрузку, - но при тысячах узлов и миллионах ключей это превращается в петабайты «мусорных» точек на числовой прямой.
Команда пересмотрела формулу распределения: вместо фиксированного числа хешей на сервер применяется взвешенная схема, где количество точек пропорционально реальному объёму диска узла. Это дало равномерную нагрузку без избыточных структур в памяти. Решение открыто в библиотеке pingora-ketama на Rust.
Для разработчиков это готовый рецепт: если вы строите балансировщик или кэш на консистентном хешировании, вес узлов и число виртуальных точек - главный рычаг экономии RAM. Cloudflare уже выложила код в open source.
#Cloudflare #Rust #Pingora #ConsistentCaching #Infrastructure
⚡1👍1