并行化时,Cosmos数据库表请求停止

时间:2018-05-29 01:49:01

标签: azure .net-core azure-cosmosdb azure-table-storage

当并行启动操作时,它们通常会超时或失败

我正在使用:

  • Azure Cosmos数据库表API
  • .NET Core 2.0(控制台应用)
  • WindowsAzure.Storage(9.2.0)nuget package
  • 标准CloudStorageAccount.Parse(...)。CreateCloudTableClient()。GetTableReference(" ...")设置

    此代码会触发8999个任务。每个任务都是一个TableOperation.Retrieve,指定PartitionKey和amp; 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

(有时候,我得到一个客户端Timeout而不是那个特定错误,或者是多个错误)

理想情况下,这8999个检索应该需要几秒钟的时间。

如何阻止他们停止?

注意:

  • 我没有摆弄任何ServicePoint设置,例如max 连接等
  • 我无法使用"直接模式"或" TCP" (vs Gateway / Https)因为没有支持.NET Core或Standard的Cosmos DB Table API的SDK
  • 我怀疑问题是客户端
  • 这是从本地服务器(不是天蓝色)
  • 运行的
  • 这不是偶尔的"。几乎每次都会发生这样的事情,像这样的大批量。

编辑:也发布为GitHub问题。 https://github.com/Azure/azure-documentdb-dotnet/issues/517

1 个答案:

答案 0 :(得分:0)

我将您的问题上报给产品团队,他们会在Github与您联系,因为您还有一个未解决的问题:https://github.com/Azure/azure-documentdb-dotnet/issues/517,我会在找到解决方案后更新此帖子。