Я запускаю несколько параллельных запросов в Афину через приложение Python.
Учитывая историю запросов Афины, кажется, что все запросы действительно были получены Афиной одновременно и обрабатывались одновременно.
Однако оказывается, что общее время выполнения запроса не сильно отличается от отправки запросов один за другим.
Пример: отправка трех запросов последовательно и одновременно:
# sequentially
received at took finished at
query_1 22:01:14 6s 22:01:20
query_2 22:01:20 6s 22:01:27
query_3 22:01:27 5s 22:01:25
# concurrently
received at took finished at
query_1 22:02:25 17s 22:02:42
query_2 22:02:25 17s 22:02:42
query_3 22:02:25 17s 22:02:42
Согласно этим результатам, во втором случае кажется, что Афина, хотя и притворяется, что обрабатывает запросы одновременно, эффективно обрабатывает их последовательно.
Есть ли какая-то конфигурация, о которой я бы не знал, чтобы Афина эффективно обрабатывала несколько запросов одновременно? В идеале в этом примере три запроса, обрабатываемые одновременно, должны занимать глобальное время выполнения 6 с (самое длинное время из трех отдельных запросов).
Примечание: это три запроса, ориентированные на одну и ту же базу данных / таблицу и поддерживаемые одним и тем же (единственным) файлом Parquet в S3. Этот паркет файл ок. 70 МБ большой и имеет 2,5 М строк с полдюжины столбцов.