0

我们正在将 Mongo DB 集成为我们基于 .NET 的系统中的数据库。由于我们的系统需要数据一致性,所以我们需要支持事务。Mongo DB v4.0 支持事务,但为了将其与 .NET System.Transaction 机制集成,似乎我们需要为 Mongo 实现一个资源管理器,具有单阶段 (IPromotableSinglePhaseNotification) 或两阶段 (IEnlistNotification)犯罪。

  • Mongo C# 驱动程序公开了一个 StartTransaction()、Commit() 和 Rollback() API,它看起来像一个单阶段提交 API,所以看起来我们的资源管理器应该实现单阶段接口。另一方面,我们需要支持分布式事务,所以这适合 2-phase-commit 机制,但是在这种情况下,第一阶段(Prepare)的实现应该是什么?
  • 如果有多个 Mongo 事务参与者(例如分布式事务),如果其中一个参与者在 Mongo 驱动程序的 Commit() API 上失败,会发生什么?我应该如何处理所有之前已经承诺的参与者?
4

0 回答 0