如何在 CosmosDB 中恢复或回滚更新?
How to do revert or rollback of an update in CosmosDB?
我正在 Azure CosmosDB SQL API 中插入 JSON 文档作为事务的一部分。我正在使用 SDK Microsoft.Azure.DocumentDB.Core
.
我还有另一个 SQL 服务器 更新发生在相同的 事务范围 (不是 .NET 事务范围class)。如果 SQL 服务器 更新失败,我想 revert/rollback 对 CosmosDB 所做的更改。我应该使用 SDK 中的什么命令或选项来执行此操作?
我想你在这里问的是你的 Cosmos DB 更新是否可以参与自动管理的分布式事务,我相信答案是否定的。 Cosmos 中的交易支持有些有限。
- Cosmos DB 引擎支持的任何事务都限定为单个容器中的单个分区,这意味着,您不能更新不同容器中的文档,甚至无法将同一容器中的不同分区作为单个事务的一部分。
- 直到最近,获得事务支持的唯一方法是使用服务器端存储过程。使用 version 3.4 of the .Net SDK,您现在可以从您的 .Net 代码执行事务,但单个分区限制仍然适用。
- 没有内置支持参与与其他数据库或服务的分布式事务。
为了在您的 Cosmos DB 和 SQL 服务器数据库中执行操作作为单个原子事务的一部分,您需要编写一些代码来自行管理。 Check here 分布式事务入门。
我正在 Azure CosmosDB SQL API 中插入 JSON 文档作为事务的一部分。我正在使用 SDK Microsoft.Azure.DocumentDB.Core
.
我还有另一个 SQL 服务器 更新发生在相同的 事务范围 (不是 .NET 事务范围class)。如果 SQL 服务器 更新失败,我想 revert/rollback 对 CosmosDB 所做的更改。我应该使用 SDK 中的什么命令或选项来执行此操作?
我想你在这里问的是你的 Cosmos DB 更新是否可以参与自动管理的分布式事务,我相信答案是否定的。 Cosmos 中的交易支持有些有限。
- Cosmos DB 引擎支持的任何事务都限定为单个容器中的单个分区,这意味着,您不能更新不同容器中的文档,甚至无法将同一容器中的不同分区作为单个事务的一部分。
- 直到最近,获得事务支持的唯一方法是使用服务器端存储过程。使用 version 3.4 of the .Net SDK,您现在可以从您的 .Net 代码执行事务,但单个分区限制仍然适用。
- 没有内置支持参与与其他数据库或服务的分布式事务。
为了在您的 Cosmos DB 和 SQL 服务器数据库中执行操作作为单个原子事务的一部分,您需要编写一些代码来自行管理。 Check here 分布式事务入门。