diff --git a/sdk/cosmos/azure-cosmos-spark_3-1_2-12/CHANGELOG.md b/sdk/cosmos/azure-cosmos-spark_3-1_2-12/CHANGELOG.md
index f7af0a563cc3..cbc45aafc3ba 100644
--- a/sdk/cosmos/azure-cosmos-spark_3-1_2-12/CHANGELOG.md
+++ b/sdk/cosmos/azure-cosmos-spark_3-1_2-12/CHANGELOG.md
@@ -3,6 +3,7 @@
### 4.30.0-beta.1 (Unreleased)
#### Features Added
+* Added capability to use (and enforce) native netty transport. The native transport is more efficient - esepcially when the number of TCP connections being used is high. - See [PR 39834](https://github.com/Azure/azure-sdk-for-java/pull/39834)
#### Breaking Changes
diff --git a/sdk/cosmos/azure-cosmos-spark_3-2_2-12/CHANGELOG.md b/sdk/cosmos/azure-cosmos-spark_3-2_2-12/CHANGELOG.md
index 334abf48752b..dbcfcc5bd793 100644
--- a/sdk/cosmos/azure-cosmos-spark_3-2_2-12/CHANGELOG.md
+++ b/sdk/cosmos/azure-cosmos-spark_3-2_2-12/CHANGELOG.md
@@ -3,6 +3,7 @@
### 4.30.0-beta.1 (Unreleased)
#### Features Added
+* Added capability to use (and enforce) native netty transport. The native transport is more efficient - esepcially when the number of TCP connections being used is high. - See [PR 39834](https://github.com/Azure/azure-sdk-for-java/pull/39834)
#### Breaking Changes
diff --git a/sdk/cosmos/azure-cosmos-spark_3-3_2-12/CHANGELOG.md b/sdk/cosmos/azure-cosmos-spark_3-3_2-12/CHANGELOG.md
index 5c508f97fd96..d8fc7a2b7d6a 100644
--- a/sdk/cosmos/azure-cosmos-spark_3-3_2-12/CHANGELOG.md
+++ b/sdk/cosmos/azure-cosmos-spark_3-3_2-12/CHANGELOG.md
@@ -3,6 +3,7 @@
### 4.30.0-beta.1 (Unreleased)
#### Features Added
+* Added capability to use (and enforce) native netty transport. The native transport is more efficient - esepcially when the number of TCP connections being used is high. - See [PR 39834](https://github.com/Azure/azure-sdk-for-java/pull/39834)
#### Breaking Changes
diff --git a/sdk/cosmos/azure-cosmos-spark_3-4_2-12/CHANGELOG.md b/sdk/cosmos/azure-cosmos-spark_3-4_2-12/CHANGELOG.md
index 2c1df4494966..3e0ce638e8f9 100644
--- a/sdk/cosmos/azure-cosmos-spark_3-4_2-12/CHANGELOG.md
+++ b/sdk/cosmos/azure-cosmos-spark_3-4_2-12/CHANGELOG.md
@@ -3,6 +3,7 @@
### 4.30.0-beta.1 (Unreleased)
#### Features Added
+* Added capability to use (and enforce) native netty transport. The native transport is more efficient - esepcially when the number of TCP connections being used is high. - See [PR 39834](https://github.com/Azure/azure-sdk-for-java/pull/39834)
#### Breaking Changes
diff --git a/sdk/cosmos/azure-cosmos-spark_3-5_2-12/CHANGELOG.md b/sdk/cosmos/azure-cosmos-spark_3-5_2-12/CHANGELOG.md
index b77ad802f00d..a7c102d98bb1 100644
--- a/sdk/cosmos/azure-cosmos-spark_3-5_2-12/CHANGELOG.md
+++ b/sdk/cosmos/azure-cosmos-spark_3-5_2-12/CHANGELOG.md
@@ -3,6 +3,7 @@
### 4.30.0-beta.1 (Unreleased)
#### Features Added
+* Added capability to use (and enforce) native netty transport. The native transport is more efficient - esepcially when the number of TCP connections being used is high. - See [PR 39834](https://github.com/Azure/azure-sdk-for-java/pull/39834)
#### Breaking Changes
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/docs/configuration-reference.md b/sdk/cosmos/azure-cosmos-spark_3_2-12/docs/configuration-reference.md
index b00d75cfdc73..310df0e97ccb 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/docs/configuration-reference.md
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/docs/configuration-reference.md
@@ -24,6 +24,7 @@
| Config Property Name | Default | Description |
|:------------------------------------------------------------------|:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `spark.cosmos.useGatewayMode` | `false` | Use gateway mode for the client operations |
+| `spark.cosmos.enforceNativeTransport` | `false` | Indicates whether native netty transport should be enforced. If true, on client creation an exception will be thrown if netty is not able to use native transport. The native transport is more efficient especially when there is a high number of connections. |
| `spark.cosmos.http.connectionPoolSize` | `1000` | Gateway mode connection pool size |
| `spark.cosmos.read.forceEventualConsistency` | `true` | Makes the client use Eventual consistency for read operations instead of using the default account level consistency |
| `spark.cosmos.applicationName` | None | Application name |
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/pom.xml b/sdk/cosmos/azure-cosmos-spark_3_2-12/pom.xml
index 07377decbbad..57b342539c5b 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/pom.xml
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/pom.xml
@@ -24,6 +24,7 @@
11
true
azure_cosmos_spark
+ azurecosmosspark
@@ -226,6 +227,7 @@
org.scala-lang.modules:scala-java8-compat_2.12:[0.8.0]
io.projectreactor:reactor-scala-extensions_2.12:[0.8.0]
org.scalatest:scalatest_2.12:[3.2.2]
+ org.apache.maven.plugins:maven-antrun-plugin:[3.1.0]
net.alchim31.maven:scala-maven-plugin:[4.8.1]
org.scalastyle:scalastyle-maven-plugin:[1.0.0]
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:[2.13.5]
@@ -301,7 +303,7 @@
3.3.0
- empty-javadoc-jar-with-readme
+ 01-empty-javadoc-jar-with-readme
package
jar
@@ -313,33 +315,6 @@
-
- org.apache.maven.plugins
- maven-antrun-plugin
- 3.1.0
-
-
- copy-readme-to-javadocTemp
- prepare-package
-
-
- Deleting existing ${project.basedir}/javadocTemp
-
-
-
- Copying ${project.basedir}/README.md to
- ${project.basedir}/javadocTemp/README.md
-
-
-
-
-
- run
-
-
-
-
-
net.alchim31.maven
scala-maven-plugin
@@ -399,7 +374,7 @@
3.5.2
- shade
+ 02-shade
package
shade
@@ -427,7 +402,7 @@
io.netty
- ${shadingPrefix}.io.netty
+ ${shadingPrefixNetty}.io.netty
org.codehaus
@@ -604,6 +579,54 @@
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 3.1.0
+
+
+ 01-copy-readme-to-javadocTemp
+ prepare-package
+
+
+ Deleting existing ${project.basedir}/javadocTemp
+
+
+
+ Copying ${project.basedir}/README.md to
+ ${project.basedir}/javadocTemp/README.md
+
+
+
+
+
+ run
+
+
+
+ 03-repack
+ package
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
org.codehaus.mojo
xml-maven-plugin
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosClientCache.scala b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosClientCache.scala
index 748ea7400463..240a6d302454 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosClientCache.scala
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosClientCache.scala
@@ -174,6 +174,15 @@ private[spark] object CosmosClientCache extends BasicLoggingTrait {
// scalastyle:off cyclomatic.complexity
private[this] def createCosmosAsyncClient(cosmosClientConfiguration: CosmosClientConfiguration,
cosmosClientStateHandle: Option[CosmosClientMetadataCachesSnapshot]): CosmosAsyncClient = {
+ if (cosmosClientConfiguration.enforceNativeTransport && !io.netty.channel.epoll.Epoll.isAvailable) {
+ throw new IllegalStateException(
+ "The enforcement of native transport is enabled in your configuration and native transport is not " +
+ "available. Either ensure `spark.cosmos.enforceNativeTransport` is set to false or make " +
+ "sure you use a Spark environment supporting native transport.",
+ io.netty.channel.epoll.Epoll.unavailabilityCause()
+ )
+ }
+
var builder = new CosmosClientBuilder()
.endpoint(cosmosClientConfiguration.endpoint)
.userAgentSuffix(cosmosClientConfiguration.applicationName)
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosClientConfiguration.scala b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosClientConfiguration.scala
index 61081399bcdc..1cbe4fcc50b8 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosClientConfiguration.scala
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosClientConfiguration.scala
@@ -14,6 +14,7 @@ private[spark] case class CosmosClientConfiguration (
customApplicationNameSuffix: Option[String],
applicationName: String,
useGatewayMode: Boolean,
+ enforceNativeTransport: Boolean,
proactiveConnectionInitialization: Option[String],
proactiveConnectionInitializationDurationInSeconds: Int,
httpConnectionPoolSize: Int,
@@ -69,6 +70,7 @@ private[spark] object CosmosClientConfiguration {
customApplicationNameSuffix,
applicationName,
cosmosAccountConfig.useGatewayMode,
+ cosmosAccountConfig.enforceNativeTransport,
cosmosAccountConfig.proactiveConnectionInitialization,
cosmosAccountConfig.proactiveConnectionInitializationDurationInSeconds,
cosmosAccountConfig.httpConnectionPoolSize,
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosConfig.scala b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosConfig.scala
index 43af00d7114b..d5ca9af82784 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosConfig.scala
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/main/scala/com/azure/cosmos/spark/CosmosConfig.scala
@@ -59,6 +59,7 @@ private[spark] object CosmosConfigNames {
val DisableTcpConnectionEndpointRediscovery = "spark.cosmos.disableTcpConnectionEndpointRediscovery"
val ApplicationName = "spark.cosmos.applicationName"
val UseGatewayMode = "spark.cosmos.useGatewayMode"
+ val EnforceNativeTransport = "spark.cosmos.enforceNativeTransport"
val ProactiveConnectionInitialization = "spark.cosmos.proactiveConnectionInitialization"
val ProactiveConnectionInitializationDurationInSeconds = "spark.cosmos.proactiveConnectionInitializationDurationInSeconds"
val GatewayConnectionPoolSize = "spark.cosmos.http.connectionPoolSize"
@@ -151,6 +152,7 @@ private[spark] object CosmosConfigNames {
DisableTcpConnectionEndpointRediscovery,
ApplicationName,
UseGatewayMode,
+ EnforceNativeTransport,
ProactiveConnectionInitialization,
ProactiveConnectionInitializationDurationInSeconds,
GatewayConnectionPoolSize,
@@ -328,6 +330,7 @@ private case class CosmosAccountConfig(endpoint: String,
accountName: String,
applicationName: Option[String],
useGatewayMode: Boolean,
+ enforceNativeTransport: Boolean,
proactiveConnectionInitialization: Option[String],
proactiveConnectionInitializationDurationInSeconds: Int,
httpConnectionPoolSize: Int,
@@ -408,6 +411,12 @@ private object CosmosAccountConfig {
parseFromStringFunction = useGatewayMode => useGatewayMode.toBoolean,
helpMessage = "Use gateway mode for the client operations")
+ private val EnforceNativeTransport = CosmosConfigEntry[Boolean](key = CosmosConfigNames.EnforceNativeTransport,
+ mandatory = false,
+ defaultValue = Some(false),
+ parseFromStringFunction = enforceNativeTransport => enforceNativeTransport.toBoolean,
+ helpMessage = "Flag indicating whether native Netty transport availability should be enforced.")
+
private val ProactiveConnectionInitialization = CosmosConfigEntry[String](key = CosmosConfigNames.ProactiveConnectionInitialization,
mandatory = false,
defaultValue = None,
@@ -502,6 +511,7 @@ private object CosmosAccountConfig {
val accountName = CosmosConfigEntry.parse(cfg, CosmosAccountName)
val applicationName = CosmosConfigEntry.parse(cfg, ApplicationName)
val useGatewayMode = CosmosConfigEntry.parse(cfg, UseGatewayMode)
+ val enforceNativeTransport = CosmosConfigEntry.parse(cfg, EnforceNativeTransport)
val proactiveConnectionInitialization = CosmosConfigEntry.parse(cfg, ProactiveConnectionInitialization)
val proactiveConnectionInitializationDurationInSeconds = CosmosConfigEntry.parse(cfg, ProactiveConnectionInitializationDurationInSeconds)
val httpConnectionPoolSize = CosmosConfigEntry.parse(cfg, HttpConnectionPoolSize)
@@ -558,6 +568,7 @@ private object CosmosAccountConfig {
accountName.get,
applicationName,
useGatewayMode.get,
+ enforceNativeTransport.get,
proactiveConnectionInitialization,
proactiveConnectionInitializationDurationInSeconds.get,
httpConnectionPoolSize.get,
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/CosmosClientCacheITest.scala b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/CosmosClientCacheITest.scala
index 060540c927e2..38bce3555f2f 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/CosmosClientCacheITest.scala
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/CosmosClientCacheITest.scala
@@ -49,6 +49,7 @@ class CosmosClientCacheITest
Some("SampleApplicationName"),
"SampleApplicationName",
useGatewayMode = true,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -72,6 +73,7 @@ class CosmosClientCacheITest
Some("SampleApplicationName"),
"SampleApplicationName",
useGatewayMode = true,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -95,6 +97,7 @@ class CosmosClientCacheITest
None,
"SampleApplicationName",
useGatewayMode = true,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -118,6 +121,7 @@ class CosmosClientCacheITest
None,
"SampleApplicationName",
useGatewayMode = true,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -145,6 +149,7 @@ class CosmosClientCacheITest
userConfig.customApplicationNameSuffix,
userConfig.applicationName,
userConfig.useGatewayMode,
+ userConfig.enforceNativeTransport,
userConfig.proactiveConnectionInitialization,
userConfig.proactiveConnectionInitializationDurationInSeconds,
userConfig.httpConnectionPoolSize,
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/CosmosPartitionPlannerSpec.scala b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/CosmosPartitionPlannerSpec.scala
index ef51932a8794..621aea52b597 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/CosmosPartitionPlannerSpec.scala
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/CosmosPartitionPlannerSpec.scala
@@ -22,6 +22,7 @@ class CosmosPartitionPlannerSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -94,6 +95,7 @@ class CosmosPartitionPlannerSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -166,6 +168,7 @@ class CosmosPartitionPlannerSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -238,6 +241,7 @@ class CosmosPartitionPlannerSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -308,6 +312,7 @@ class CosmosPartitionPlannerSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -394,6 +399,7 @@ class CosmosPartitionPlannerSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/PartitionMetadataSpec.scala b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/PartitionMetadataSpec.scala
index 7018902c6ea4..a13c5fa2fdc0 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/PartitionMetadataSpec.scala
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/src/test/scala/com/azure/cosmos/spark/PartitionMetadataSpec.scala
@@ -21,6 +21,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -64,6 +65,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -146,6 +148,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -228,6 +231,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -292,6 +296,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -351,6 +356,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -404,6 +410,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -457,6 +464,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -510,6 +518,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -563,6 +572,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -616,6 +626,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
@@ -686,6 +697,7 @@ class PartitionMetadataSpec extends UnitSpec {
None,
UUID.randomUUID().toString,
useGatewayMode = false,
+ enforceNativeTransport = false,
proactiveConnectionInitialization = None,
proactiveConnectionInitializationDurationInSeconds = 120,
httpConnectionPoolSize = 1000,
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/test-databricks/notebooks/basicScenario.scala b/sdk/cosmos/azure-cosmos-spark_3_2-12/test-databricks/notebooks/basicScenario.scala
index 466ef45c07f7..958599a7d4fc 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/test-databricks/notebooks/basicScenario.scala
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/test-databricks/notebooks/basicScenario.scala
@@ -13,14 +13,16 @@ val cfg = Map("spark.cosmos.accountEndpoint" -> cosmosEndpoint,
"spark.cosmos.container" -> cosmosContainerName,
"spark.cosmos.preferredRegionsList" -> "West US 2",
"spark.cosmos.proactiveConnectionInitialization" -> s"$cosmosDatabaseName/$cosmosContainerName",
- "spark.cosmos.proactiveConnectionInitializationDurationInSeconds" -> "10"
+ "spark.cosmos.proactiveConnectionInitializationDurationInSeconds" -> "10",
+ "spark.cosmos.enforceNativeTransport" -> "true"
)
val cfgWithAutoSchemaInference = Map("spark.cosmos.accountEndpoint" -> cosmosEndpoint,
"spark.cosmos.accountKey" -> cosmosMasterKey,
"spark.cosmos.database" -> cosmosDatabaseName,
"spark.cosmos.container" -> cosmosContainerName,
- "spark.cosmos.read.inferSchema.enabled" -> "true"
+ "spark.cosmos.read.inferSchema.enabled" -> "true",
+ "spark.cosmos.enforceNativeTransport" -> "true"
)
// COMMAND ----------
diff --git a/sdk/cosmos/azure-cosmos-spark_3_2-12/test-databricks/notebooks/basicScenarioAad.scala b/sdk/cosmos/azure-cosmos-spark_3_2-12/test-databricks/notebooks/basicScenarioAad.scala
index 970c3b259237..aa19ea68db5e 100644
--- a/sdk/cosmos/azure-cosmos-spark_3_2-12/test-databricks/notebooks/basicScenarioAad.scala
+++ b/sdk/cosmos/azure-cosmos-spark_3_2-12/test-databricks/notebooks/basicScenarioAad.scala
@@ -24,7 +24,8 @@ val cfg = Map("spark.cosmos.accountEndpoint" -> cosmosEndpoint,
"spark.cosmos.auth.aad.clientId" -> clientId,
"spark.cosmos.auth.aad.clientSecret" -> clientSecret,
"spark.cosmos.database" -> cosmosDatabaseName,
- "spark.cosmos.container" -> cosmosContainerName
+ "spark.cosmos.container" -> cosmosContainerName,
+ "spark.cosmos.enforceNativeTransport" -> "true"
)
val cfgWithAutoSchemaInference = Map("spark.cosmos.accountEndpoint" -> cosmosEndpoint,
@@ -36,7 +37,8 @@ val cfgWithAutoSchemaInference = Map("spark.cosmos.accountEndpoint" -> cosmosEnd
"spark.cosmos.auth.aad.clientSecret" -> clientSecret,
"spark.cosmos.database" -> cosmosDatabaseName,
"spark.cosmos.container" -> cosmosContainerName,
- "spark.cosmos.read.inferSchema.enabled" -> "true"
+ "spark.cosmos.read.inferSchema.enabled" -> "true",
+ "spark.cosmos.enforceNativeTransport" -> "true"
)
// COMMAND ----------
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosClientBuilder.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosClientBuilder.java
index 1c30988b6112..87a9731c6eff 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosClientBuilder.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosClientBuilder.java
@@ -1218,7 +1218,7 @@ private void ifThrowIllegalArgException(boolean value, String error) {
private void logStartupInfo(StopWatch stopwatch, CosmosAsyncClient client) {
stopwatch.stop();
- if (logger.isInfoEnabled()) {
+ if (logger.isWarnEnabled()) {
long time = stopwatch.getTime();
String diagnosticsCfg = "";
String tracingCfg = "";
@@ -1235,11 +1235,14 @@ private void logStartupInfo(StopWatch stopwatch, CosmosAsyncClient client) {
logger.warn("Cosmos Client with (Correlation) ID [{}] started up in [{}] ms with the following " +
"configuration: serviceEndpoint [{}], preferredRegions [{}], excludedRegions [{}], connectionPolicy [{}], " +
"consistencyLevel [{}], contentResponseOnWriteEnabled [{}], sessionCapturingOverride [{}], " +
- "connectionSharingAcrossClients [{}], clientTelemetryEnabled [{}], proactiveContainerInit [{}], diagnostics [{}], tracing [{}]",
+ "connectionSharingAcrossClients [{}], clientTelemetryEnabled [{}], proactiveContainerInit [{}], " +
+ "diagnostics [{}], tracing [{}], nativeTransport [{}] fastClientOpen [{}]",
client.getContextClient().getClientCorrelationId(), time, getEndpoint(), getPreferredRegions(), getExcludedRegions(),
getConnectionPolicy(), getConsistencyLevel(), isContentResponseOnWriteEnabled(),
isSessionCapturingOverrideEnabled(), isConnectionSharingAcrossClientsEnabled(),
- isClientTelemetryEnabled(), getProactiveContainerInitConfig(), diagnosticsCfg, tracingCfg);
+ isClientTelemetryEnabled(), getProactiveContainerInitConfig(), diagnosticsCfg,
+ tracingCfg, io.netty.channel.epoll.Epoll.isAvailable(),
+ io.netty.channel.epoll.Epoll.isTcpFastOpenClientSideAvailable());
}
}