在CosmosClient (Cosmos DB .NET SDK v3)中,CosmosClientOptions属性中有一个标志AllowBulkExecution,用于启用/禁用批量执行。在可能有大量并行进行的操作(当然,假设我以线程安全的方式修改选项)的过程中更改此标志是否安全?或者是否需要将CosmosClient实例替换为另一个具有不同设置的实例?
背景:我想通过启用/禁用批量执行来优化性能,具体取决于传入CosmosClient的修改请求的速率。
发布于 2020-09-22 00:29:14
一旦构建了客户端,更改此标志将不起作用。如果您保留CosmosClientOptions实例,之后切换标志不会影响已经构建的客户端。
客户端创建的一部分会克隆您作为参数传递的实例:https://github.com/Azure/azure-cosmos-dotnet-v3/blob/40ceaffa848ebb6e3f4efa255df49f38290ef539/Microsoft.Azure.Cosmos/src/Resource/ClientContextCore.cs#L61
目前(虽然不确定这是否称为预期行为),您可以通过现有客户端实例上的cosmosClient.CosmosClientOptions属性修改该标志。
如果您希望在每个操作级别禁用或启用批量,请在此处分享您的反馈:https://github.com/Azure/azure-cosmos-dotnet-v3/issues/1496
编辑:根据评论添加说明。
https://stackoverflow.com/questions/63992332
复制相似问题