Cosmos DB Table запрашивает остановку при распараллеливании - PullRequest
0 голосов
/ 29 мая 2018

При параллельном запуске операций они обычно заканчиваются тайм-аутом или ошибкой

Я использую:

  • API таблицы Azure Cosmos DB Table
  • .NETCore 2.0 (консольное приложение)
  • Пакет nuget для WindowsAzure.Storage (9.2.0)
  • Стандартный CloudStorageAccount.Parse (...). CreateCloudTableClient (). GetTableReference ("... ") setup

    Этот код запускает 8999 задач.Каждая задача представляет собой TableOperation.Retrieve, в котором указываются и PartitionKey, и RowKey.Я ввел некоторый код для отслеживания состояний завершения задачи и любых попаданий IRetryPolicy. Нет ошибок 429

Вот вывод из недавнего запуска:

await Task.WhenAll(stuff.Select(x => table.ExecuteAsync(opGetter.Get(x))));
0:01 - 12 done
0:02 - 228 done
0:03 - 313 done
0:04 - 435 done
0:05 - 1010 done
0:06 - 1883 done
0:07 - 2833 done
0:08 - 3014 done
0:09 - 3878 done
0:10 - 5447 done
0:11 - 5569 done
0:12 - 6492 done
0:13 - 6527 done
0:14 - 6532 done
0:15 - 6541 done
0:16 - 6543 done
0:17 - 6547 done
0:18 - 6552 done
0:19 - 6554 done
0:20 - 6951 done
0:21 - 8105 done
0:22 - 8128 done
0:23 - 8591 done
0:24 - 8907 done
0:25 - 8908 done
0:29 - 8994 done
0:32 - 8996 done
1:14 - 8997 done
2:26 - 8998 done
5:02 - StatusCode: 0 "An error occurred while sending the request."
5:05 - All 8999 Done

(Иногда я получаю тайм-аут на стороне клиентавместо этой конкретной ошибки, вместо нескольких ошибок)

Эти 8999 запросов в идеале должны занимать несколько секунд.

Как я могу остановить их остановку?

Примечание:

  • Я не возился с какими-либо настройками ServicePoint, такими как максимальное количество подключений,и т.д.
  • Я не могу использовать «Прямой режим» или «TCP» (против шлюза / Https), потому что нет SDK, поддерживающего API таблицы Cosmos DB для .NET Core или Standard
  • Я подозреваю, чтопроблема на стороне клиента
  • Это выполняется с локального сервера (не на Azure)
  • Это не «случайно».Это то, что происходит почти каждый раз, с такой большой партией.

РЕДАКТИРОВАТЬ: Также опубликовано как проблема GitHub.https://github.com/Azure/azure-documentdb-dotnet/issues/517

1 Ответ

0 голосов
/ 08 июня 2018

Я передал вашу проблему команде разработчиков, они будут обращаться к вам в Github, поскольку у вас также есть открытая проблема: https://github.com/Azure/azure-documentdb-dotnet/issues/517, я обновлю эту ветку, как только будет найдено решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...