Cloudflare удалось высвободить около 100 ТБ оперативной памяти в своей глобальной инфраструктуре благодаря оптимизации алгоритма распределения кешированных данных между серверами. Инженеры компании пересмотрели работу согласованного хеширования в открытом фреймворке Pingora и обнаружили, что значительная часть используемой памяти фактически была избыточной. Cloudflare активно кеширует веб-контент, чтобы отдавать пользователям запрошенные данные непосредственно из памяти или с диска ближайшего сервера, не обращаясь каждый раз к исходному сайту. Для выбора подходящего кеш-сервера компания использует алгоритм Ketama, основанный на согласованном хешировании. Система преобразует URL в числовой хеш и сопоставляет его с хешами серверов. При этом каждому физическому серверу назначается множество виртуальных точек, случайным образом распределенных по хеш-кольцу. Такая схема позволяет равномерно перераспределять запросы между оставшимися узлами, если один из серверов выходит из строя. Со временем в инфраструктуре Cloudflare на каждый сервер пришлось около 100 000 таких хешей. Дополнительную сложность создавали разные веса серверов, региональные особенности инфраструктуры и ограничения, из-за которых не каждый узел мог обслуживать любой запрос. В результате таблицы маршрутизации стали занимать огромное количество оперативной памяти.
Источник: IXBT — https://www.ixbt.com/news/2026/09/21/437410-cloudflare-osvobodila-100-tb-operativnoi-pamiati-izmeniv-vsego-neskolko-strok-v-svoei-sisteme.html
Комментарии