Hacker News Digest

18 сентября 2026 г. в 18:51 • blog.cloudflare.com • ⭐ 466 • 💬 110

Original • HN

#cloudflare#consistent-hashing#memory-optimization#pingora#pingora-ketama#rust

Saving another 100TB of RAM

Cloudflare сократил потребление памяти в сервисе Pingora Backend Router на более чем 100 ТБ за счёт оптимизации алгоритма consistent hashing в библиотеке pingora-ketama. Проблема заключалась в том, что для каждого узла хранились полные копии хеш-кольца — структуры данных, используемой для распределения запросов между серверами. При росте числа узлов это приводило к квадратичному росту памяти: каждый новый узел дублировал всё кольцо, что при тысячах серверов и петабайтах RAM становилось неприемлемо дорогим.

Оптимизация заключалась в переходе от полного дублирования кольца к компактному представлению: вместо хранения всех хешей каждого узла, теперь хранится только базовое множество хешей на узел, а при поиске используется эффективный алгоритм сортировки и бинарного поиска по сжатому пространству. Это позволило уменьшить память на узел с O(N) до O(1) относительно числа узлов, сохранив при этом свойства consistent hashing — минимальную переназначенность при добавлении/удалении узлов и равномерное распределение нагрузки. Изменения были внесены как обратно совместимая функция v2 в pingora-ketama, позволяющая逐步 мигрировать без простоев. После полного перехода на новую версию наблюдался резкий спад потребления памяти — подтверждённый метриками — что эквивалентно экономии более 100 ТБ RAM по всему глобальному флоту Cloudflare. Это демонстрирует, как математическая прозорливость и аккуратная реализация в Rust могут превратить, казалось бы, незначительные алгоритмические улучшения в масштабную экономию ресурсов.