- Fixed a possible
NullPointerException
in the ctor ofFeedOperationState
. - See PR 40714
- Added diagnostic fields for
quorumAckedLSN
andcurrentReplicaSetSize
. ChangedreplicaStatusList
to include all replicas and more information. - See PR 39844
- Fixed an issue causing
IllegalArgumentException
when usinghandleChanges
on change feed processor startup - See PR 40420
- Added query statement conditionally in diagnostics and tracing. - See PR 39990
- Fixed a rare issue causing
StackOverflowError
whenRntbdRequestRecord
expires and tries to serializeCosmosException
using default Jackson Object Mapper - See PR 40272 - Fixed UserAgent encoding when the suffix contains non-ASCII characters. - See PR 40293
- Added robustness improvement to avoid client-side parsing errors
java.lang.IllegalArgumentException: Unable to parse JSON
when Gateway returns duplicateunqiueKeyPolicy
in IndexPolicy (invalid json) - SeePR 40306
- Added
cosmosVectorEmbeddingPolicy
incosmosContainerProperties
andvectorIndexes
inindexPolicy
to support vector search in CosmosDB - SeePR 39379 - Added support for non-streaming OrderBy query and a query feature
NonStreamingOrderBy
to support Vector Search queries. - See PR 39897 - Added the capability to regionally scope session tokens used for operations scoped to a logical partition. - See PR 38003
- Ensured that
excludedRegions
is getting honored change feed operations. - See PR 38003
- Added change to throw
IllegalStateException
when change feed mode is switched fromAllVersionsAndDeletes
toIncremental
and vice-versa for the same deployment unit for EPK-Range based leases. See PR 38740
- Added public APIs
getCustomItemSerializer
andsetCustomItemSerializer
to allow customers to specify custom payload transformations or serialization settings. - See PR 38997 and PR 39933
- Load Blackbird or Afterburner into the ObjectMapper depending upon Java version and presence of modules in classpath. Make Afterburner and Blackbird optional maven dependencies. See - PR 39689
- Fixed an issue in QuorumReader when quorum could not be selected even though 1 secondary and Primary are reachable and in sync. - See PR 38832
- Changed initial
targetBatchSize
to be capped by bothinitialBatchSize
andmaxBatchSize
configured inCosmosBulkExecutionOptions
- See39500 - Ensured that
exceptionMessage
is populated even for non-cosmos Exceptions inGatewayStatistics
- See PR 39507 - Added partition key helper functions to
PartitionKeyBuilder
that are needed forazure-spring-data-cosmos
. - See PR 39213 - Added
cosmos.client.req.rntbd.actualItemCount
andcosmos.client.req.gw.actualItemCount
metrics. - See PR 39682
- Added public APIs
setMaxMicroBatchSize
andgetMaxMicroBatchSize
inCosmosBulkExecutionOptions
- See PR 39335
- Suppressed exceptions when calling diagnostics handlers. - See PR 39077
- Fixed an issue where no cross region retry for write operations due to channel acquisition timeout. - See PR 39255
- Fixed incorrect container tag value in metrics. - See PR 39322
- Fixed issue where CosmosDiagnosticsContext is null when diagnostics are sampled out. - See PR 39352
- Changed logic to only call
System.exit()
inDiagnosticsProvider
forError
scenario. Also addedSystem.err
forError
cases. - See PR 39077 - Removed
System.exit()
calls fromImplementationBridgeHelpers
. - See PR 39387
- Removed
System.exit()
calls fromImplementationBridgeHelpers
. - See PR 39215
- Fixed an issue where
sampleDiagnostics
is not being honored for `query. See PR 37015 - Suppressed exceptions when calling diagnostics handlers. - See PR 39077
- Changed logic to only call
System.exit()
inDiagnosticsProvider
forError
scenario. Also addedSystem.err
forError
cases. - See PR 39077 - Removed
System.exit()
calls fromImplementationBridgeHelpers
. - See PR 39182
- Fixed an issue where
sampleDiagnostics
is not being honored for `query. See PR 37015 - Suppressed exceptions when calling diagnostics handlers. - See PR 39077
- Changed logic to only call
System.exit()
inDiagnosticsProvider
forError
scenario. Also addedSystem.err
forError
cases. - See PR 39077 - Removed
System.exit()
calls fromImplementationBridgeHelpers
. - See PR 39184
- Suppressed exceptions when calling diagnostics handlers. - See PR 39121
- Changed logic to only call
System.exit()
inDiagnosticsProvider
forError
scenario. Also addedSystem.err
forError
cases. - See PR 39121
- Added overloads for
CosmosAsyncContainer.readMany
andCosmosContainr.readMany
accepting request options viaCosmosReadManyRequestOptions
to allow specifying excluded regions, diagnostics thresholds and end-to-end timeout etc. - See PR 38821
- Fixed an issue in QuorumReader when quorum could not be selected even though 1 secondary and Primary are reachable and in sync. - See PR 38832
- Limited max. number of threads possible to be used by BulkExecutor instances . - See PR 38745
- Added option to override the Http Connection Pool size in Gateway mode. Increasing the connection pool size beyond 1000 can be useful when the number of concurrent requests in Gateway mode is very high and you see a
reactor.netty.internal.shaded.reactor.pool.PoolAcquirePendingLimitException: Pending acquire queue has reached its maximum size of 2000
error. - See PR 38305
- Added payload size metrics for Gateway mode. - See PR 38517
- Reduced CPU overhead slightly for workloads with high throughput of point operations - especially when diagnostics like traces or metrics are enabled. - See PR 38232
- Changed to add
transportRequestChannelAcquisitionContext
in CosmosDiagnostics based on duration inchannelAcquisitionStarted
stage. By default, ifchannelAcquisitionStarted
took more than 1s,transportRequestChannelAcquisitionContext
will be added. - See PR 38416 - Added information about the path when it is invalid in RxDocumentService ctor. - See PR 38482
- Removed
CancellationException
callstack fromRntbdRequestRecord.toString
. - See PR 38504 - Using customized
subStatusCodes
for client generatedInternalServerErrorException
. - See PR 38518 - Added an option to opt-out of E2E timeout defined in CosmosClientBuilder for non-point operations via system property or environment variable. - See PR 38388
- Using
ConnectionTimeout
as theRNTBD
connectionacquisitionTimeout
. - See PR 38695
- Reduced CPU overhead slightly for workloads with high throughput of point operations - especially when diagnostics like traces or metrics are enabled. - See PR 38232
- Changed to add
transportRequestChannelAcquisitionContext
in CosmosDiagnostics based on duration inchannelAcquisitionStarted
stage. By default, ifchannelAcquisitionStarted
took more than 1s,transportRequestChannelAcquisitionContext
will be added. - See PR 38416 - Added an option to opt-out of E2E timeout defined in CosmosClientBuilder for non-point operations via system property or environment variable. - See PR 38388
- Integrate
ThroughputControl
with ChangeFeedProcessor - See PR 38052
- Fixed issue where AAD/Entra ID related exceptions are not fully propagated to the caller when CosmosAsyncClient is created, causing ambiguity for user on the root cause of the error - See PR 37977
- Fixed a
NullPointerException
issue inMetadataRequestRetryPolicy
whenlocationEndpointToRoute
is not set. - See PR 38094
- Reset
transitTimeoutCount
andcancellationCount
inRntbdClientChannelHealthChecker
when CPU load is above threshold. - See PR 38157 - Perf-improvement avoiding extra-buffer copy for query and point operations - See PR 38072
- Fixed high number of PKRangeFeed calls when using BulkExecution without SparkConnector - See PR 37920
- Changed to
DEBUG
log level inWebExceptionRetryPolicy
for non-handled exception scenario and retry scenario - See PR 37918
- Fixed a bug resulting in
CosmosDiagnosticsContext.getStatusCode()
always returning0
forreadMany
operations. - See PR 37394 - Fixed an issue where PartitionKeyRange request will not do cross region retry. - See PR 37403
- Fixed an issue where Session consistency was not honored when the consistency level on the
CosmosClientBuilder.consistencyLevel
was not explicitly set toConsistencyLevel.SESSION
but the default account consistency level is session. If not enforcing session consistency is the intended behavior, you can set theCosmsoClientBuilder.consistencyLevel
toConsistencyLevel.EVENTUAL
. - See PR 37377 - Fixed an issue where client level
EndToEndOperationLatencyPolicyConfig.availabilityStrategy
is not being applied forquery
- See PR 37511 - Fixed an issue where operation is not cancelled based on
CosmosEndToEndOperationLatencyPolicyConfig.endToEndOperationTimeout
when429
happens - See PR 37764 - Fixed an issue where
CosmosEndToEndOperationLatencyPolicyConfig.endToEndOperationTimeout
is not applied forReadMany
- See PR 37764 - Fixed an issue with OFFSET and LIMIT query clause returning partial query results when used with DISTINCT - See PR 37860
- Modified the event payload when diagnostic details are traced (vis Open telemetry traces). The diagnostics can exceed the max. attribute size of 8KB. This PR will split the diagnostics and trace them in multiple events (ordered by
SequenceNumber
attribute) to ensure the full diagnostics message is available in logged events. - See PR 37376 - Added
sessionRetryCfg
to the diagnostic string and modifiedproactiveInit
key name toproactiveInitCfg
in the diagnostic string. - See PR 36711 - Modified
429
retry backoff time whenretryAfter
is not being returned from server. For429/3200
, SDK will retry immediately, for others SDK will backoff 100ms - See PR 37764
- Added an option to configure the minimum retry duration for 404/1002 session not available. - See PR 37143 and PR 37240
- Fixed an issue where
emptyPageDiagnosticsEnabled
inCosmosQueryRequestOptions
was being overridden. This caused empty page diagnostics to be logged (with INFO level) even when the flag was set to false - See PR 37199 - Fixed an issue where the HttpTimeoutPolicy was not being used correctly - See PR 37188
- Fixed an issue where SDK mark region unavailable on http timeout - See PR 37163
- Fixed an issue where SDK do
A, B, C, A
retry pattern for404/1002
- See PR 37040 - Fixed an issue where SDK do aggressive retry on
449
- See PR 37040 - Fixed an issue where SDK skip cross region retry for server generated
410
for write operations - See PR 37040 - Added 410/1002 handling for
ChangeFeedProcessor#getCurrentState
in Latest Version, All Version and Deletes changes modes. - See PR 37107- NOTE : Here the fix is for a
ChangeFeedProcessor
instance built with eitherhandleLatestVersionChanges
orhandleAllVersionsAndDeletesChanges
.
- NOTE : Here the fix is for a
- Fixed an issue where SDK does not do retry for
AddressRefresh
onHttpTimeout
for write operations - See PR 37286
- Added a preview API to
ChangeFeedProcessorBuilder
to process an additionalChangeFeedProcessorContext
for handling all versions and deletes changes. - See PR 36715 - Added public APIs to configure a
Supplier<CosmosExcludedRegions>
throughCosmosClientBuilder#excludedRegionSupplier
andCosmosExcludedRegions
- a type which encapsulates a set of excluded regions. See PR 36616
- Fixed an issue with the threshold based availability strategy, which could result in missing diagnostics and unnecessarily high tail latency - See PR 36508 and PR 36786.
- Fixed an issue where
sampleDiagnostics
is not being honored for query. See PR 37015 - Fixed the issue of
excludeRegions
not being honored forCosmosBulkExecutionOptions
. - SeePR 36616 - Fixed an issue with missing diagnostics (metrics, logging) for
Cosmos(Async)Container.readMany
calls - See PR 37009
- Added throughput control support for
gateway mode
. See PR 36687 - Added public API to change the initial micro batch size in
CosmosBulkExecutionOptions
. The micro batch size is dynamically adjusted based on throttling rate. By default, it starts with a relatively large micro batch size, which can result in a short spike of throttled requests at the beginning of a bulk execution - reducing the initial micro batch size - for example to 1 - will start with smaller batch size and then dynamically increase it without causing the initial short spike of throttled requests. See PR 36910
- Disabled
CosmosEndToEndOperationLatencyPolicyConfig
feature inChangeFeedProcessor
. SettingCosmosEndToEndOperationLatencyPolicyConfig
atCosmosClient
level will not affectChangeFeedProcessor
requests in any way. See PR 36775 - Fixed staleness issue of
COSMOS.MIN_CONNECTION_POOL_SIZE_PER_ENDPOINT
system property - See PR 36599. - Fixed an issue where
pageSize
frombyPage
is not always being honored. This only happens when the sameCosmosQueryRequestOptions
being used through different requests, and different pageSize being used. See PR 36847 - Fixed an issue where build of
CosmosClient
andCosmosAsyncClient
was getting blocked for the entire aggressive warmup duration even when all the connections have been opened already. - See PR 36889 - Fixed
CosmosClient
connection warm up bug to open connections aggressively. - See PR 36889
- Handling negative end-to-end timeouts provided more gracefully by throwing a
CosmsoException
(OperationCancelledException
) instead ofIllegalArgumentException
. - See PR 36507 - Reverted preserve ordering in bulk mode(PR 35892). See PR 36638
Important
We strongly recommend our customers to upgrade directly to at least 4.48.2 or above if they have been using the 4.45.2-hotfix version of azure-cosmos
. Versions 4.46.0 - 4.48.1 will miss important fixes that have been backported to 4.45.2-hotfix.
- Added capability to mark a region as unavailable when a request is cancelled due to end-to-end timeout and connection issues with the region in the direct connectivity mode. - See PR 35586
- Fixed an issue where
ConnectionStateListener
tracked staledUris
which fails to mark the currentUris
unhealthy properly - See PR 36067 - Fixed an issue to update the last unhealthy timestamp for an
Uri
instance only when transitioning toUnhealthy
from a different health status - See 36083 - Improved the channel health check flow to deem a channel unhealthy when it sees consecutive cancellations. - See PR 36225
- Optimized the replica validation flow to validate replica health with
Unknown
health status only when the replica is used by a container which is also part of the connection warm-up flow. - See PR 36225 - Fixed possible
NullPointerException
issue if health-check flow kicks in before RNTBD context negotiation for a given channel - See PR 36397.
Important
We strongly recommend our customers to use version 4.48.2 and above.
- Fixed possible
NullPointerException
issue if health-check flow kicks in before RNTBD context negotiation for a given channel - See PR 36397.
- Handling negative end-to-end timeouts provided more gracefully by throwing a
CosmosException
(OperationCancelledException
) instead ofIllegalArgumentException
. - See PR 36535
- Added a flag for allowing customers to preserve ordering in bulk mode. See PR 35892
- Added a flag to bypass integrated cache when dedicated gateway is used. See PR 35865
- Added new aggressive retry timeouts for in-region calls. See PR 35987
- Wired
proactiveInit
into the diagnostics to track warmed up containers, proactive connection regions and aggressive warm up duration - See PR 36111 - Fixed possible
NullPointerException
issue if health-check flow kicks in before RNTBD context negotiation for a given channel - See PR 36397.
- Added coverage for
ChangeFeedProcessor
inLatest Version
change feed mode to read change feed from a custom start time for multi-write accounts. - SeePR 36257
- Fixed request start time in the
CosmosDiagnostics
for individual request responses - See PR 35705 - Fixed an issue where
ConnectionStateListener
tracked staledUris
which fails to mark the currentUris
unhealthy properly - See PR 36067 - Gone exceptions that are not idempotent should not be retried because it is not known if they succeeded for sure. The handling of the exception in this case is left to the user. Fixed retrying write operations when a gone exception occurs in bulk mode. - See PR 35838
- Fixed an issue to update the last unhealthy timestamp for an
Uri
instance only when transitioning toUnhealthy
from a different health status - See 36083
- Query metrics diagnostics changed to JSON format. - See PR 35761
- Improved the channel health check flow to deem a channel unhealthy when it sees consecutive cancellations. - See PR 36225
- Optimized the replica validation flow to validate replica health with
Unknown
health status only when the replica is used by a container which is also part of the connection warm-up flow. - See PR 36225
- Fixed an issue with deserialization of
conflictResolutionTimestamp
for All versions and deletes change feed mode. - See PR 35909 - Added capability to mark a region as unavailable when a request is cancelled due to end-to-end timeout and connection issues with the region in the direct connectivity mode. - See PR 35586
- Added fault injection support for Gateway connection mode - See PR 35378
- Fixed an issue with deserialization of
conflictResolutionTimestamp
for All versions and deletes change feed mode. - See PR 35912
- Added the capability to specify region switch hints through
CosmosClientBuilder#setSessionRetryOptions
for optimizing retries forREAD_SESSION_NOT_AVAILABLE
errors. - See PR 35292 - Added API to exclude regions on request options which helps avoid a regions from preferred regions for the request. - See PR 35166
- Added API for providing an availability strategy to improve availability when end-end timeout is specified. - See PR 35166
- Added Threshold based availability strategy. - See PR 35166
- Fixes the
readMany
API to not drop existing documents from the response in point-read scenarios when there are non-existent document IDs also passed through the API - See PR 35513
- Added the capability to filter request-level metrics based on diagnostic thresholds. Request-level metrics usually are used to capture metrics per backend endpoint/replica - a high cardinality dimension. Filtering by diagnostic thresholds reduces the overhead - but also means request-level metrics can only be used for debugging purposes - not for monitoring purposes. So, it is important to use the unfiltered operation-level metrics for health monitoring in this case. - See PR 35114
- Added optional tags/dimensions for PartitionId/ReplicaId as alternative to ServiceAddress for direct-mode (rntbd) request-level metrics. - See PR 35164
- Added request level info including timeline and system usage to the
CosmosDiagnosticsContext
. - See PR 35254 and PR 35405 - Added an optional dimension/tag
OperationSubStatusCode
for operation-level metrics. - See PR 35334 - Added support for
ComputedProperty
inCosmosContainerProperties
- See PR 35046
- Renamed the JVM configuration -
COSMOS.DEFENSIVE_WARMUP_CONCURRENCY
toCOSMOS.OPEN_CONNECTIONS_CONCURRENCY
- See PR 34859
- Enabled connection warm-up to continue in a best-effort manner to other regions in case of address resolution errors for a particular region - See PR 35323
- Fixed an issue with
ChangeFeedProcessor
to fetch all changes before delay based on configuredPollDelay
. - See PR 35324
- Refactored
CosmosContainerProactiveInitConfigBuilder
to make use ofContainerDirectConnectionMetadata
and to wireDirectConnectionConfig
with JVM configuration -COSMOS.MIN_CONNECTION_POOL_SIZE_PER_ENDPOINT
- See PR 34859 - Extending maximum retry delay in
SessionTokenMismatchRetryPolicy
. - See PR 35360
- Fixed an issue where status code & sub-status code
408/20008
will always be populated in the CosmosDiagnostics in case ofRNTBD
request failures - See PR 34999 - Fixed
readMany
API bug to enable swallowing of404 Not Found
exceptions for 404/0 scenarios whenreadMany
performs point-reads internally - See PR 34966
- Added support for priority based throttling - See PR 34121
- Added configurability for minimum connection pool size for all containers through a system property -
COSMOS.MIN_CONNECTION_POOL_SIZE_PER_ENDPOINT
- See PR 33983. - Added
CosmosContainerProactiveInitConfigBuilder:setAggressiveWarmupDuration(Duration aggressiveWarmupDuration)
public API to switch between aggressively opening connections in a blocking manner to defensively opening connections in a non-blocking manner afteraggressiveWarmupDuration
has elapsed - See PR 33983. - Added end to end timeout policy for item operations. Requests will be cancelled if they have not finished before the configured timeout - See PR 34554.
- Added capability to sample diagnostics dynamically (without need to reinitialize the app or the Cosmos Client instance). - See PR 34915.
- Fixed
IllegalArgumentException
in changeFeedProcessor whenmaxScaleCount
is configured - See PR 34618 - Removed custom user agent suffix from client telemetry - See PR 34866
- Fixed an issue where
userAgentSuffix
is not being used inCosmosDiagnostics
- See PR 34863 - Enabled proactive connection management to only reopen closed / reset connections to those endpoints used by containers which were part of the connection warm up flow - See PR 34892
- Disabled initialization of client telemetry background threads if client telemetry is disabled - See PR 34889
- Removed synchronized locking on generating random UUIDs - See PR 34879
- Capture diagnostics for cancelled
RNTBD
requests - See PR 34912 - Added support for threshold based speculative processing - See PR 34686
- Fixed an issue where throughput control is not triggered properly when target throughput is being used - See PR 34393
- Fixed an issue where
IllegalStateException
being thrown during replica validation - See PR 34538
- Added option to enable automatic retries for write operations - See 34227
- Added option to enable automatic logging of Cosmos diagnostics for errors or requests exceeding latency threshold - See 33209
- Added support for OpenTelemetry traces following the Semantic profile for Cosmos DB - See 33209
- Changed the default structure of Open Telemetry events being emitted by the SDK to follow the semantic profile for Cosmos DB. Use the
COSMOS.USE_LEGACY_TRACING
system property to retrun to the previous event structure:-DCOSMOS.USE_LEGACY_TRACING=true
- See 33209
- Added support for Move operation - See PR 31078
- GA of
subpartition
functionality in SDK - See 32501 - Added ability for SDK to use partial partition keys for queries in subpartitioned containers - See 32501
- Enable
handleLatestVersionChanges
in ChangeFeedProcessor - See 33972 - Added Merge support. NOTE: to use Change Feed Processor with merge support, onboard to the new API
handleLatestVersionChanges()
inChangeFeedProcessorBuilder
.
- Fixed
readMany
API to take in hierarchical partition keys - See 32501 - Fixed an issue in the Direct Transport metrics for acquired/closed channels which would be triggered when endpoint get closed/evicted due to exceeding idle timeouts. This would surface as stale metrics for these endpoints. - See 33969
- Added fault injection support - See PR 33329.
- Added ability to configure proactive connection management via
CosmosClientBuilder.openConnectionsAndInitCaches(CosmosContainerProactiveInitConfig)
. - See PR 33267 - Added internal merge handling - See PR 31428. See PR 32097. See PR 32078. See PR 32165. See 32259. See 32496
- Added more granular control of which Cosmos client-side metrics to emit, whether to collect histograms and percentiles (and which) and also which tags/dimensions to associate with individual metrics. - See PR 33436
- NOTE: the PR to provide more granular control over metrics - See PR 33436 - includes two technically breaking changes. We don't expect any customers to be impacted by this, but the PR description as well as information below provides some context and options on how to revert the behavior to previous version.
- The API
CosmosClientTelemetryConfig.metricTagNames
has been marked deprecated in favor ofCosmosMicrometerMetricsOptions.defaultTagNames
orCosmosMicrometerMeterOptions.suppressTagNames
- theCosmosClientTelemetryConfig.metricTagNames
API can still be used as long as none of the new configuration APIs is used - but we recommend starting to switch over to the new APIs. - Capturing metrics - especially
Timer
andDistributionSummary
with percentiles/histograms has some performance overhead. We got feedback that initially we were emitting some metrics with relatively high cardinality on tags with percentiles/histograms of questionable value (only useful in certain scenarios). So, we decided to disable collecting these metrics by default - but still allow them to be collected when enabled manually via the APIs described in PR 33436.
- The API
- Change feed pull API is using an incorrect key value for collection lookup, which can result in using the old collection in collection recreate scenarios. - See PR 33178
- Give a meaningful name to the GlobalEndpointManager worker thread. - See PR 33507
- Adding activity id in header of gateway address refresh call. - See PR 33074
- Direct mode -
RNTBD
connection health check improvements inRntbdClientChannelHealthChecker
to allow recovering quicker when existing connections get broken (without TCP close or reset, just timeouts because packets get dropped). - See PR 33464 and - See PR 33566
- Added
retryAfterInMs
toStoreResult
inCosmosDiagnostics
- See PR 31219 - Added
CosmosDiagnostics
toreadMany
API - See PR 32290
- Fixed issue on noisy
CancellationException
log - See PR 31882 - Fixed issue with
TracerProvider
constructor inadvertently disabling tracing whenisClientMetricsEnabled
is true - See PR 32787 - Added improvement in handling for idle connection being closed unexpectedly - See PR 32936
- Reduced log noisiness when bulk ingestion completes and sink is already terminated or cancelled. - See PR 32601
- Optimized the
readMany
API to make use of point reads when a single item is requested for a given physical partition - See PR 31723 - Added cross region retries for data plane, query plan and metadata requests failed with http timeouts - See PR 32450
- Fixed a rare race condition for
query plan
cache exceeding the allowed size limit - See PR 31859 - Added improvement in
RntbdClientChannelHealthChecker
for detecting continuous transit timeout. - See PR 31544 - Fixed an issue in replica validation where addresses may have not sorted properly when replica validation is enabled. - See PR 32022
- Fixed unicode char handling in Uris in Cosmos Http Client. - See PR 32058
- Fixed an eager prefetch issue to lazily prefetch pages on a query - See PR 32122
- Shaded
MurmurHash3
of apachecommons-codec
to enable removing of theguava
dependency - CVE-2020-8908 - See PR 31761 - Updated test dependency of
testng
to version 7.5 - See PR 31761 - Reduced the logging noise level on CancellationExceptions from
RntbdReporter.reportIssue
. - See PR 32175
- Updated test dependency of apache
commons-text
to version 1.10.0 - CVE-2022-42889 - See PR 31674 - Updated
jackson-databind
dependency to 2.13.4.2 - CVE-2022-42003 - See PR 31559
- Added option to set throughput control group name on per-request level for batch and bulk operations. - See PR 31362
- Fixed incorrect RU metric reporting in micrometer metrics. - See PR 31307
- Enabled failover to preferred locations in the case of single-write/multi-read region enabled account for read in Gateway mode and for metadata requests in Direct mode. - More details about the Bug: Cosmos DB Client gets stuck in timeout retry loop. - See PR 31314
- Added SslHandshakeTimeout minimum duration config - See PR 31298
- Added new preview APIs to
ChangeFeedProcessor
for handling all versions and deletes changes - See PR 30399 - Added option to emit client-side metrics via micrometer.io MeterRegistry. - See PR 30065
- Fixed a race condition that could result in a memory/thread leak for
BulkExecutor
instances (and their correspondingcosmos-daemon-BulkExecutor-*
thread). - See PR 31082
- Enable replica validation by default - See PR 31159
- Added system property to turn on replica validation - See PR 29767
- Added improvement to avoid retry on same replica that previously failed with 410, 408 and >= 500 status codes - See PR 29767
- Improvement when
connectionEndpointRediscoveryEnabled
is enabled - See PR 30281 - Added replica validation for Unknown status if
openConnectionsAndInitCaches
is used and replica validation is enabled - See PR 30277
- Added non-blocking async lazy cache to improve upgrade and scaling scenarios - See PR 29322
- Improved performance of
StoreResponse
using array headers - See PR 30596
- Updated netty library version to
4.1.79.Final
. - Updated
reactor-core
version to3.4.21
.
- GA of
DedicatedGatewayRequestOptions
API. See PR 30142
- Added
requestSessionToken
toCosmosDiagnostics
- See PR 29516 - Reverted changes of PR 29944 to avoid possible regression when customers use id with special characters and their account is on ComputeGateway already. - See PR 30283
- Added changes for
changeFeed
APIs for handling all versions and deletes changes. See PR 30161
- Fixed issues with "id" encoding when using special characters that should be allowed in the "id" property of a document. - See PR 29944
- Fixed
NotFoundException
forqueryChangeFeed
with staled feed range after split - See PR 29982 - Fixed
ForbiddenException
for azure instance metadata service requests if proxy is configured for client telemetry. - See PR 30004 - Fixed a regression introduced in PR 27440 which causes an
IllegalArgumentException
for distinct queries when using POJO serialization. - See PR 30025 - Fixed
IllegalArgumentException
when trying to update targetThroughput(Threshold) without process restart. - See PR 30049
- Supported username and password to be used in
GatewayConnectionConfig.setProxy
. - See PR 30004
- Updated netty library version to
4.1.78.Final
. - Updated
reactor-core
version to3.4.19
.
- Added a fix for
CloneNotSupportedException
when trying to instantiate aCosmos(Async)Client
and using a MAC provider which would not support cloning. Instead, this should be handled gracefully (less ideal perf is expected - but functionally it should work.) - See PR 29719
- Remove requires
io.netty.transport.epoll
frommodule-info
- See PR 29509 - Converted from
durationInMicroSec
todurationInMilliSecs
inCosmosDiagnostics
- See PR 29643
- Fixed Store Response headers case insensitivity. - See PR 29268
- Add
IdleStateHandler
after Ssl handshake has completed and improvement on keeping inner exceptions for creating new channels. - See PR 29253
- Made CosmosPatchOperations thread-safe. Usually there is no reason to modify a CosmosPatchOperations instance concurrently form multiple threads - but making it thread-safe acts as protection in case this is done anyway - See PR 29143
- Added system property to allow overriding proxy setting for client telemetry endpoint. - See PR 29022
- Added additional information about the reason on Rntbd channel health check failures. - See PR 29174
- Fixed bubbling of Errors in case of any
java.lang.Error
- See PR 28620 - Fixed an issue with creating new Throughput control client item when
enableThroughputControlGroup
is being called multiple times with the same throughput control group. - See PR 28905 - Fixed a possible dead-lock on static ctor for CosmosException when the runtime is using custom class loaders. - See PR 28912 and PR 28961
- Added
exceptionMessage
andexceptionResponseHeaders
toCosmosDiagnostics
in case of any exceptions - See PR 28620 - Improved performance of
query plan
cache by usingConcurrentHashMap
with a fixed size of 1000 - See PR 28537 - Changed 429 (Throttling) retry policy to have an upper bound for the back-off time of 5 seconds - See PR 28764
- Improved
openConnectionsAndInitCaches
by using rntbd context negotiation. - See PR 28470 - Enable
connectionEndpointRediscoveryEnabled
by default - See PR 28471
- Fixed AAD authentication for
CosmosPatchOperations
- See PR 28537
- Added Beta API
continueOnInitError
inThroughputControlGroupConfigBuilder
- See PR 27702
- Added improvement for handling idle connection close event when
connectionEndpointRediscoveryEnabled
is enabled - See PR 27242 - Fixed memory leak issue related to circular reference of
CosmosDiagnostics
inStoreResponse
andCosmosException
- See PR 28343
- Updated
jackson
dependency to 2.13.2 andjackson-databind
dependency to 2.13.2.1 - CVE-2020-36518. - See PR 27847
- Added the "VM Unique ID" - see Accessing and Using Azure VM Unique ID - to the request diagnostics. This information helps to simplify investigating any network issues between an application hosted in Azure and the corresponding Cosmos DB service endpoint. - See PR 27692
- Added overload of read api on ClientEncryptionKey with request options for cosmos encrytion project. - See PR 27210
- Added
decodeTime
inCosmosDiagnostics
- See PR 22808
- Reduced CPU usage for some String operations by switching to APIs that don't compile a pattern for each call. - See PR 27654
- Reduced GC (Garbage Collection) pressure when executing queries returning many documents by pushing down type conversion. - See PR 27440
- Fixed an issue in
CosmosPagedIterable
resulting in excessive memory consumption due to unbounded prefetch of pages when converting theCosmosPagedIterable
into anIterator<FeedResponse<T>>
. - See PR 27237 and PR 27299 - Fixed a
NullPointerException
inCosmosDiagnostics isDiagnosticsCapturedInPagedFlux
- See PR 27261 - Fixed an issue with allowing null values for add, set and replace operations in Patch API - See PR 27501
- Fixed an issue with top query when top x is greater than the total number of items in the database - See PR 27377
- Fixed synchronized lists and maps for order by query race condition - See PR 27142
- Added support to resume a "multi order by query" from a continuation token - See PR 26267
- Added
RNTBD - open connections
information inClientTelemetry
. - Added Beta API to set custom
Reactor
scheduler to be used by theChangeFeedProcessor
implementation - See PR 26750 - Added support for correlating queries executed via the Cosmos Spark connector with service-telemetry based on the
correlationActivityId
- See PR 26908
- Fixed an issue in
ChangeFeedProcessor
related toleases
that were found expired - See PR 26750 - Fixed an issue with
query plan
caching double initialization - See PR 26825
- Added support for logging
CosmosDiagnostics
for empty pages through system property for cross partition query - See PR 26869
- Added support to resume a "multi order by query" from a continuation token - See PR 26267
- Fixed
NullPointerException
in bulk mode for deleted/recreated containers. - Added missing exception cause in case of
InternalServerException
.
- Added implementation for
CosmosAuthorizationTokenResolver
. - Scoped session token per partition level for gateway call.
- Fixed issue causing CosmosException with statusCode 0 to be thrown on connectivity issues for Gateway.
- Addressed potential race condition in
ChangeFeedProcessor
when check-pointing current state.
- Added
setMaxMicroBatchConcurrency
andgetMaxMicroBatchConcurrency
inCosmosBulkExecutionOptions
.
- Bulk execution improvement triggering a flush when total payload size exceeds the max payload size limit.
- Bulk execution improvement shortening the flush interval when the
Flux
of incoming operations signals completion. - Fixed metadata cache refresh scenario on collection recreate for gateway mode.
- Added Beta API
getContactedRegionNames
inCosmosDiagnostics
.
- Fixed
IllegalStateException
forgetFeedRanges
when container recreated with same name. - Made Cosmos spans CLIENT which will allow Azure Monitor to show HTTP calls nested under Cosmos spans.
- Fixed
ConcurrentModificationException
when gettingNotFoundException
with session consistency.
- Fixed an issue in
ChangeFeedProcessor
where processing stops in some rare cases because of a race condition can occur which prevents work to be promptly assigned to other instances.
- GA of
CosmosPatch
,CosmosBatch
andCosmosBulk
API. - GA of
ChangeFeedProcessorState
API. - Added
networkRequestTimeout
API forDirectConnectionConfig
.
- Override the default keep-alive config on linux to keep connections open and detect a broken connection faster.
- Removed deprecated
BulkExecutionOptions
. - Removed deprecated
BulkExecutionThresholds
. - Removed deprecated
BulkItemRequestOptions
. - Removed deprecated
BulkItemRequestOptionsBase
. - Removed deprecated
BulkOperations
. - Removed deprecated
BulkPatchItemRequestOptions
. - Removed deprecated
BulkProcessingOptions
. - Removed deprecated
BulkProcessingThresholds
. - Removed deprecated
TransactionalBatch
. - Removed deprecated
TransactionalBatchItemRequestOptions
. - Removed deprecated
TransactionalBatchItemRequestOptionsBase
. - Removed deprecated
TransactionalBatchOperationResult
. - Removed deprecated
TransactionalBatchPatchItemRequestOptions
. - Removed deprecated
TransactionalBatchRequestOptions
. - Removed deprecated
TransactionalBatchResponse
.
- Removed
AfterBurner
module for Java version 16+. - Fixed
BadRequestException
issue when usingDistinct
with matchedorderBy
queries viacontinuationToken
.
- Enabling
query plan
cache by default.
- Fixed issue with bulk reads when
contentResponseOnWrite
is not explicitly enabled on the cosmos client.
- Added support to config retry count for
openConnectionsAndInitCaches
.
- Fixed ReadMany Api on partition split.
- Removed full exception trace from 404 error on open telemetry.
- Fixed issue with onErrorDropped being called when using concatWith in QuorumReader.
- Added support to config retry count for
openConnectionsAndInitCaches
.
- Added support for distinct count queries.
- Added support for capturing
IndexMetrics
inCosmosQueryRequestOptions
.
- Added support to switch off IO thread for response processing.
- Fixed issue for resuming order by queries from continuation token that includes undefined/null.
- Renamed
BulkExecutionOptions
toCosmosBulkExecutionOptions
. - Renamed
BulkExecutionThresholds
toCosmosBulkExecutionThresholdsState
. - Renamed
BulkItemRequestOptions
toCosmosBulkItemRequestOptions
. - Renamed
BulkItemRequestOptionsBase
toCosmosBulkItemRequestOptionsBase
. - Renamed
BulkOperations
toCosmosBulkOperations
. - Renamed
BulkPatchItemRequestOptions
toCosmosBulkPatchItemRequestOptions
. - Renamed
TransactionalBatch
toCosmosBatch
. - Renamed
TransactionalBatchItemRequestOptions
toCosmosBatchItemRequestOptions
. - Renamed
TransactionalBatchItemRequestOptionsBase
toCosmosBatchItemRequestOptionsBase
. - Renamed
TransactionalBatchOperationResult
toCosmosBatchOperationResult
. - Renamed
TransactionalBatchPatchItemRequestOptions
toCosmosBatchPatchItemRequestOptions
. - Renamed
TransactionalBatchRequestOptions
toCosmosBatchRequestOptions
. - Renamed
TransactionalBatchResponse
toCosmosBatchResponse
. - Renamed
processBulkOperations
toexecuteBulkOperations
API. - Renamed
executeTransactionalBatch
toexecuteCosmosBatch
API. - Moved
CosmosBulkItemResponse.java
tocom.azure.cosmos.models
package. - Moved
CosmosBulkOperationResponse.java
tocom.azure.cosmos.models
package. - Moved
CosmosItemOperation.java
tocom.azure.cosmos.models
package. - Moved
CosmosItemOperationType.java
tocom.azure.cosmos.models
package. - Moved
CosmosPatchOperations.java
tocom.azure.cosmos.models
package.
- Added support to switch off IO thread for response processing.
- Integrated cosmos diagnostics with open telemetry tracer.
- Added reactor netty timeline to
query plan
calls. - Fixed serialization warning on
clientSideRequestDiagnostics
. - Fixed an issue when
IdleEndpointTimeout
is set to 0 inDirectConnectionConfig
. - Added retry for
PrematureCloseException
. - Fixed an issue where application hangs in bulk executor.
- Fixed an issue which preventing recovery from 410/0 after split.
- Added
TransportRequestChannelAcquisitionContext
inCosmosDiagnostics
.
- Adjust
MicroBatchSize
dynamically based on throttling rate inBulkExecutor
.
- Fixed an issue with AAD authentication in
Strong
andBoundedStaleness
in direct mode. - Fixed an issue where
ChangeFeedProcessor
was resuming from zero continuation token for new partitions on partition splits.
- Fixed an issue on handling partition splits during bulk operations in Gateway Mode.
- Fixed an issue with
NumberFormatException
happening on requests on large containers. - Fixed an issue with BackOff time in
ThroughputController
. - Fixed an issue with
ThroughputControl
calculation. - Improved behavior when
CosmosClientBuilder.userAgentSuffix
exceeds 64 characters. NowuserAgentSuffix
will be honored as long as total userAgent value is less than 256 characters or truncated to fit the 256 characters limited. - Fixed issue when using client-side throughput control in combination with bulk upserts, previously resulting in unnecessarily upserting documents multiple times in some cases when getting throttled.
- No changes from previous version, releasing for compatibility issues with cosmos encryption modules.
- Added
backendLatencyInMs
inCosmosDiagnostics
forDIRECT
connection mode. - Added
retryContext
inCosmosDiagnostics
for query operations.
- Fixed ignored
HttpClient
decoder configuration issue. - Fixed incorrect connection mode issue in
CosmosDiagnostics
. - Fixed issue with handling collisions in the effective partition key.
- Fixed
CosmosQueryRequestOptions
NPE inreadAllItems
API.
- No changes from previous version, releasing for compatibility issues with cosmos encryption modules.
- No changes from previous version, releasing for compatibility issues with cosmos encryption modules.
- General Availability for
readMany()
API inCosmosAsyncContainer
andCosmosContainer
. - General Availability for
handle()
API inCosmosPagedFlux
andCosmosPagedIterable
. - Upgraded Jackson to patch version 2.12.2.
- Exposed
getDocumentUsage
andgetDocumentCountUsage()
APIs inFeedResponse
to retrieve document count metadata.
- Allowed
CosmosPagedFlux#handle()
andCosmosPagedIterable#handle()
API for chaining. - Removed
AfterBurner
module usage fromCosmosException
causing the warning logs. - Fixed issue of duplicate processing of items on the same Change Feed Processor instance.
- Return
RequestTimeoutException
on client side timeout for write operations.
- Fixed issue preventing recovery from 410 status code and 0 sub status code due to stale Gateway caches when threads in parallel scheduler are starved.
- Fixed warning caused because of afterburner module usage in
CosmosDiagnostics
. - Query performance improvements.
Important
This release updates reactor-core
and reactor-netty
major versions to 2020.0.4 (Europium)
release train.
- Updated
reactor-core
version to 3.4.3. - Updated
reactor-netty
version to 1.0.4. - Added
Diagnostics
for queries.
- Fixed
OrderBy
for mixed and undefined types for cross partition queries. - Fixed
readAllItems
with resourceToken. - Fixed issue with
resourceToken
usage inGateway
connection mode. - Fixed issues with point operations with permissions in
Gateway
connection mode.
- Added connection endpoint rediscovery feature to help reduce and spread-out high latency spikes.
- Added changeFeed pull model beta API.
- Added support for resuming query from a pre split continuation token after partition split.
- Optimized query execution time by caching
query plan
for single partition queries with filters and orderby.
- Fixed telemetry deserialization issue.
- Skip session token for
query plan
, trigger and UDF. - Improved session timeout 404/1002 exception handling.
- Added Beta API for Patch support.
- Updated reactor-core library version to
3.3.12.RELEASE
. - Updated reactor-netty library version to
0.9.15.RELEASE
. - Updated netty library version to
4.1.54.Final
.
- Fixed RntbdServiceEnpoint close issue.
- Improved the latency and throughput for writes when multiplexing.
- Added Conflict API support.
- Added Beta API for Bulk Operations.
- Added
getRegionsContacted
API inCosmosDiagnostics
. - Added Diagnostics for
CosmosStoredProcedureResponse
. - Added trouble shooting guide links to
CosmosException
.
- Adding automatic retries on client-side transient failures on writes while possible with still being idempotent.
- Fixed NPE on
getDiagnostics
forCosmosStoredProcedureResponse
. - Fixed empty
resourceAddress
inCosmosException
.
- Added
contentResponseOnWriteEnabled
feature toCosmosItemRequestOptions
.
- Fixed an issue which may affect query behaviour when resuming from a continuation token.
- Improved the 449 retry policy to force back-off on initial retry and start with shorter back-offs.
- Added Beta API for transactional batches.
- Fixed an error parsing query metrics on locales with ',' as floating-point delimiter.
- Stopped excessive regional fail-overs when retrieving responses with invalid json from Gateway.
- Fixed an error resulting in certain queries unnecessarily being expected in the Gateway even when using Direct transport.
- Reduced logging noise level by handling SSLException on channel closure.
- Improved efficiency of retry logic for "404 - ReadSession not available" errors.
- Added new API to support AAD role-based access control in Cosmos. This is a preview feature which needs to be enabled at the account settings.
- Added handler API(beta) to
CosmosPagedFlux
/CosmosPagedIterable
to be invoked on every response.
- Increased robustness of query execution and fetching metadata cache in case of intermittent connectivity issues.
- Added preview implementation for ChangeFeedProcessor which allows for a more detailed view of the current state.
- Fixed Multiple partition supervisor tasks running simultaneously if leaseAcquireInterval is smaller than leaseRenewInterval.
- Improved Diagnostics for Rntbd connectivity.
- Stopped onError Dropped events from leaking into default reactor hook.
- Increased robustness of the Rntbd stack in case of intermittent connectivity issues.
- Improved latency in case of intermittent connectivity issues to individual backend replicas for multi-region accounts avoiding initiation of unnecessary regional fail-overs.
- Fixed RequestTimeoutException when enabling
netty-tcnative-boringssl
dependency. - Fixed memory leak issue on
Delete
operations inGATEWAY
mode. - Fixed a leak in
CosmosClient
instantiation when endpoint uri is invalid. - Improved
CPU History
diagnostics.
- Added new API to efficiently load many documents (via list of pk/id pairs or all documents for a set of pk values).
- Added new
deleteItem
API. - Enabled query metrics by default.
- Fixed NPE in
GatewayAddressCache
. - Fixing query metric issue for zero item response.
- Improved performance (reduced CPU usage) for address parsing and Master-Key authentication.
- No changes from previous version, releasing for compatibility issues with spring data modules.
- Fixed issue in RntbdServiceEndpoint to avoid early closure of an unused TCP connection.
- Fixed issue with
GROUP BY
query, where it was returning only one page. - Fixed user agent string format to comply with central SDK guidelines.
- Enhanced diagnostics information to include
query plan
diagnostics.
- Updated reactor-core library version to
3.3.8.RELEASE
. - Updated reactor-netty library version to
0.9.10.RELEASE
. - Updated netty library version to
4.1.51.Final
. - Added new overload APIs for
upsertItem
withpartitionKey
. - Added open telemetry tracing support.
- Fixed issue where SSLException gets thrown in case of cancellation of requests in GATEWAY mode.
- Fixed resource throttle retry policy on stored procedures execution.
- Fixed issue where SDK hangs in log level DEBUG mode.
- Fixed periodic spikes in latency in Direct mode.
- Fixed high client initialization time issue.
- Fixed http proxy bug when customizing client with direct mode and gateway mode.
- Fixed potential NPE in users passes null options.
- Added timeUnit to
requestLatency
in diagnostics string. - Removed duplicate uri string from diagnostics string.
- Fixed diagnostics string in proper JSON format for point operations.
- Fixed issue with
.single()
operator causing the reactor chain to blow up in case of Not Found exception.
- Added script logging enabled API to
CosmosStoredProcedureRequestOptions
. - Updated
DirectConnectionConfig
defaultidleEndpointTimeout
to 1h and defaultconnectTimeout
to 5s.
- Fixed issue where
GatewayConnectionConfig
idleConnectionTimeout
was overridingDirectConnectionConfig
idleConnectionTimeout
. - Fixed
responseContinuationTokenLimitInKb
get and set APIs inCosmosQueryRequestOptions
. - Fixed issue in query and change feed when recreating the collection with same name.
- Fixed issue with top query throwing ClassCastException.
- Fixed issue with order by query throwing NullPointerException.
- Fixed issue in handling of cancelled requests in direct mode causing reactor
onErrorDropped
being called.
- Added support for
GROUP BY
query. - Increased the default value of maxConnectionsPerEndpoint to 130 in DirectConnectionConfig.
- Increased the default value of maxRequestsPerConnection to 30 in DirectConnectionConfig.
- Fixed issues with order by query returning duplicate results when resuming by using continuation token.
- Fixed issues with value query returning null values for nested object.
- Fixed null pointer exception on request manager in RntbdClientChannelPool.
- Renamed
QueryRequestOptions
toCosmosQueryRequestOptions
. - Updated
ChangeFeedProcessorBuilder
to builder pattern. - Updated
CosmosPermissionProperties
with new container name and child resources APIs.
- Fixed ConnectionPolicy
toString()
Null Pointer Exception.
- Added more samples & enriched docs to
CosmosClientBuilder
. - Updated
CosmosDatabase
&CosmosContainer
APIs with throughputProperties for autoscale/autopilot support. - Renamed
CosmosClientException
toCosmosException
. - Replaced
AccessCondition
&AccessConditionType
byifMatchETag()
&ifNoneMatchETag()
APIs. - Merged all
Cosmos*AsyncResponse
&CosmosResponse
types to a singleCosmosResponse
type. - Renamed
CosmosResponseDiagnostics
toCosmosDiagnostics
. - Wrapped
FeedResponseDiagnostics
inCosmosDiagnostics
. - Removed
jackson
dependency from azure-cosmos & relying on azure-core. - Replaced
CosmosKeyCredential
withAzureKeyCredential
type. - Added
ProxyOptions
APIs toGatewayConnectionConfig
. - Updated SDK to use
Instant
type instead ofOffsetDateTime
. - Added new enum type
OperationKind
. - Renamed
FeedOptions
toQueryRequestOptions
. - Added
getETag()
&getTimestamp()
APIs toCosmos*Properties
types. - Added
userAgent
information inCosmosException
&CosmosDiagnostics
. - Updated new line character in
Diagnostics
to System new line character. - Removed
readAll*
APIs, use query select all APIs instead. - Added
ChangeFeedProcessor
estimate lag API.
- Fixed issue with parsing of query results in case of Value order by queries.
- Added autoscale/autopilot throughput provisioning support to SDK.
- Replaced
ConnectionPolicy
with new connection configs. ExposedDirectConnectionConfig
&GatewayConnectionConfig
APIs throughCosmosClientBuilder
for Direct & Gateway mode connection configurations. - Moved
JsonSerializable
&Resource
to implementation package. - Added
contentResponseOnWriteEnabled
API to CosmosClientBuilder which disables full response content on write operations. - Exposed
getETag()
APIs on response types. - Moved
CosmosAuthorizationTokenResolver
to implementation. - Renamed
preferredLocations
&multipleWriteLocations
API topreferredRegions
&multipleWriteRegions
. - Updated
reactor-core
to 3.3.5.RELEASE,reactor-netty
to 0.9.7.RELEASE &netty
to 4.1.49.Final versions. - Added support for
analyticalStoreTimeToLive
in SDK.
- Fixed socket leak issues with Direct TCP client.
- Fixed
orderByQuery
with continuation token bug.
CosmosClientException
extendsAzureException
.- Removed
maxItemCount
&requestContinuationToken
APIs fromFeedOptions
instead usingbyPage()
APIs fromCosmosPagedFlux
&CosmosPagedIterable
. - Introduced
CosmosPermissionProperties
on public surface forPermission
APIs. - Removed
SqlParameterList
type & replaced withList
- Fixed multiple memory leaks in Direct TCP client.
- Added support for
DISTINCT
queries. - Removed external dependencies on
fasterxml.uuid, guava, commons-io, commons-collection4, commons-text
. - Moved
CosmosPagedFlux
&CosmosPagedIterable
toutils
package. - Updated netty to 4.1.45.Final & project reactor to 3.3.3 version.
- Updated public rest contracts to
Final
classes. - Added support for advanced Diagnostics for point operations.
ChangeFeedProcessor
bug fix for handling partition splits & when partition not found.ChangeFeedProcessor
bug fix when synchronizing lease updates across different threads.
- Updated package to
com.azure.cosmos
- Added
models
package for model / rest contracts - Added
utils
package forCosmosPagedFlux
&CosmosPagedIterable
types. - Updated public APIs to use
Duration
across the SDK. - Added all rest contracts to
models
package. RetryOptions
renamed toThrottlingRetryOptions
.- Added
CosmosPagedFlux
&CosmosPagedIterable
pagination types for query APIs. - Added support for sharing TransportClient across multiple instances of CosmosClients using a new API in the
CosmosClientBuilder#connectionSharingAcrossClientsEnabled(true)
- Query Optimizations by removing double serialization / deserialization.
- Response Headers optimizations by removing unnecessary copying back and forth.
- Optimized
ByteBuffer
serialization / deserialization by removing intermediate String instantiations.
- Fixed race condition causing
ArrayIndexOutOfBound
exception in StoreReader