Оглавление
Компания Databricks представила архитектурный прорыв в системах ограничения запросов, который позволяет обрабатывать миллионы операций в секунду с минимальной задержкой. Решение сочетает автошардинг через технологию Dicer и инновационный механизм пакетной отчетности.
Проблемы традиционного подхода
До 2023 года инфраструктура ограничения запросов в Databricks использовала классическую схему: шлюз Envoy, сервис ограничения запросов и единый экземпляр Redis для хранения счетчиков. С ростом нагрузки и появлением новых сценариев использования, таких как обслуживание моделей в реальном времени, эта архитектура показала серьезные ограничения:
- Высокая задержка в хвосте распределения — до 10-20 мс в одном из облачных провайдеров
- Ограниченная пропускная способность — добавление машин перестало давать линейный прирост
- Redis как единая точка отказа — критическая уязвимость всей системы

Архитектурная революция: Dicer и подсчет в памяти
Ключевым прорывом стало внедрение технологии автошардинга Dicer, которая позволила полностью отказаться от Redis и перейти к подсчету запросов непосредственно в памяти серверов. Dicer решает проблему консистентного хеширования, обеспечивая точное распределение запросов и валидацию прав владения.

Элегантность решения в том, что они превратили распределенную проблему синхронизации счетчиков в локальную — каждый сервер теперь автономно управляет своим сегментом данных. Это тот случай, когда правильная архитектура побеждает грубый подход «добавим еще серверов».
Пакетная отчетность: клиентская оптимизация
Для дальнейшего снижения нагрузки инженеры Databricks разработали механизм пакетной отчетности, который исключает синхронные вызовы в критическом пути:
- Клиенты ведут локальный подсчет разрешенных и отклоненных запросов
- Периодически (каждые 100 мс) отправляют агрегированные данные на сервер
- Сервер возвращает политики ограничений для конкретных ключей
Такой подход позволяет обрабатывать до 5 миллионов операций в секунду на кластере из 20 серверов с задержкой менее 1 мс для 99.9% запросов.
Производительность и результаты
Новая архитектура демонстрирует впечатляющие показатели:
- Пропускная способность: 250k RPS на один сервер
- Задержка P99: менее 1 миллисекунды
- Масштабируемость: линейный рост производительности с добавлением узлов
Решение уже работает в продакшене и обслуживает критически важные рабочие нагрузки, включая реальное ML-обслуживание и высоконагруженные API.
По материалам: Databricks
Оставить комментарий