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