Для обработки большого количества данных с ограничениями по времени можно использовать алгоритмы rate limiting, которые позволяют ограничивать количество запросов в единицу времени. habr.com
Некоторые алгоритмы rate limiting:
- Leaky Bucket. habr.com Запросы помещаются в очередь, которая представляет собой «ведро», содержащее запросы. habr.com Через равные промежутки времени обрабатывается первый элемент в очереди. habr.com Если очередь заполнена, то дополнительные запросы отбрасываются. habr.com
- Fixed Window. habr.com Для отслеживания запросов используется окно, равное n секундам. habr.com Каждый входящий запрос увеличивает счётчик для этого окна. habr.com Если счётчик превышает некое пороговое значение, запрос отбрасывается. habr.com
- Sliding Log. habr.com Предполагает отслеживание временных меток каждого запроса пользователя. habr.com Записи сохраняются и сортируются по времени, записи за пределами отслеживаемого интервала отбрасываются. habr.com
Также для обработки большого количества данных можно использовать системы управления большими данными, например:
- ClickHouse. tproger.ru Подходит для аналитики, статистических исследований, обработки большого количества данных и запросов в реальном времени. tproger.ru
- Greenplum. learning.infoteam.msk.ru Массивно-параллельная реляционная СУБД для хранилищ данных с гибкой горизонтальной масштабируемостью и столбцовым хранением данных. learning.infoteam.msk.ru