diff --git a/azurecosmos/src/main/java/site/ycsb/db/AzureCosmosClient.java b/azurecosmos/src/main/java/site/ycsb/db/AzureCosmosClient.java index 22306e682d..fc58cbf24b 100644 --- a/azurecosmos/src/main/java/site/ycsb/db/AzureCosmosClient.java +++ b/azurecosmos/src/main/java/site/ycsb/db/AzureCosmosClient.java @@ -20,12 +20,18 @@ import com.azure.cosmos.CosmosClient; import com.azure.cosmos.CosmosClientBuilder; import com.azure.cosmos.CosmosContainer; +import com.azure.cosmos.CosmosContainerProactiveInitConfig; +import com.azure.cosmos.CosmosContainerProactiveInitConfigBuilder; import com.azure.cosmos.CosmosDatabase; +import com.azure.cosmos.CosmosEndToEndOperationLatencyPolicyConfig; +import com.azure.cosmos.CosmosEndToEndOperationLatencyPolicyConfigBuilder; import com.azure.cosmos.CosmosException; import com.azure.cosmos.DirectConnectionConfig; import com.azure.cosmos.GatewayConnectionConfig; +import com.azure.cosmos.ThresholdBasedAvailabilityStrategy; import com.azure.cosmos.ThrottlingRetryOptions; import com.azure.cosmos.implementation.apachecommons.lang.StringUtils; +import com.azure.cosmos.models.CosmosContainerIdentity; import com.azure.cosmos.models.CosmosItemRequestOptions; import com.azure.cosmos.models.CosmosItemResponse; import com.azure.cosmos.models.CosmosPatchOperations; @@ -256,6 +262,20 @@ private void initAzureCosmosClient() throws DBException { builder.preferredRegions(preferredRegionList); } + CosmosContainerProactiveInitConfig proactiveContainerInitConfig = + new CosmosContainerProactiveInitConfigBuilder( + Arrays.asList(new CosmosContainerIdentity("ycsb", "usertable"))) + .setProactiveConnectionRegionsCount(1) + .build(); + + CosmosEndToEndOperationLatencyPolicyConfig endToEndOperationLatencyPolicyConfig = + new CosmosEndToEndOperationLatencyPolicyConfigBuilder(Duration.ofSeconds(2)) + .availabilityStrategy(new ThresholdBasedAvailabilityStrategy()) + .build(); + + builder.openConnectionsAndInitCaches(proactiveContainerInitConfig); + builder.endToEndOperationLatencyPolicyConfig(endToEndOperationLatencyPolicyConfig); + AzureCosmosClient.client = builder.buildClient(); LOGGER.info("Azure Cosmos DB connection created to {}", uri); } catch (IllegalArgumentException e) { diff --git a/pom.xml b/pom.xml index ca46c4454a..393a2af079 100644 --- a/pom.xml +++ b/pom.xml @@ -115,7 +115,7 @@ LICENSE file. 3.1.2 4.4.1 1.8.2 - 4.41.0 + 4.51.0 4.0.0 3.0.0 2.0.1