Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cosmos DB: Upgrade cosmos DB SDK to latest version i.e. 3.38.1 #2073

Merged
merged 1 commit into from
Mar 4, 2024

Conversation

sourabh1007
Copy link
Contributor

@sourabh1007 sourabh1007 commented Mar 4, 2024

Why make this change?

We want to use SDK latest features like:

  1. Patch API
  2. Ability to disable certificate check by including a flag in connection string.
  3. Hierarchal Partition Key

etc.

What is this change?

Upgrade Cosmos to the latest version3.38.1. It's a non-breaking change

How was this tested?

NA

Sample Request(s)

NA

@sourabh1007
Copy link
Contributor Author

/azp run

Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@seantleonard
Copy link
Contributor

There may not be tests for this.. how do we know DAB isn't affected by at least one of the breaking changes for CosmosSDK listed in : https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/changelog.md since we are upgrading from 3.2.0 2021-06-21 (released in 2021)

⚠️ Note: Starting with version 3.38.0, the .NET SDK enables the ODE feature by default. This can potentially cause a new type of continuation token to be generated. Such a token is not recognized by the older SDKs by design and this could result in a Malformed Continuation Token Exception. If you have a scenario where tokens generated from the newer SDKs are used by an older SDK, we recommend a 2 step approach to upgrade:

Upgrade to the new SDK and disable ODE, both together as part of a single deployment. Wait for all nodes to upgrade.
In order to disable ODE, set EnableOptimisticDirectExecution to false in the QueryRequestOptions.
Enable ODE as part of second deployment for all nodes.

Copy link
Contributor

@Aniruddh25 Aniruddh25 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Aniruddh25
Copy link
Contributor

If you have a scenario where tokens generated from the newer SDKs are used by an older SDK, we recommend a 2 step approach to upgrade:

Good question! but I don't think we have a scenario where tokens generated by newer DAB(that uses the new SDK) will be used by older DAB (that uses the old SDK). Because when client apps target a newer DAB, older DAB shouldn't be in picture.

Copy link
Contributor

@seantleonard seantleonard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for updating the sdk!

@Aniruddh25
Copy link
Contributor

FYI @sourabh1007 merging this, if you have concerns regarding breaking changes please address in a separate PR

@Aniruddh25 Aniruddh25 merged commit 97d70f4 into main Mar 4, 2024
9 checks passed
@Aniruddh25 Aniruddh25 deleted the users/sourabhjain/upgradecosmosdbsdk branch March 4, 2024 23:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants