.NET事务,Mongo DB,两阶段提交与单阶段提交

时间:2019-03-03 14:05:45

标签: c# mongodb transactions 2phase-commit system.transactions

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

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

0 个答案:

没有答案