【发布时间】:2010-12-05 17:02:59
【问题描述】:
我们有一个系统将 SQL Server 2008 与 MongoDB 结合使用,将后者用于许多临时报告功能。它们的交集很多,但确实有一两个地方确实需要一起工作。
我总是有点担心事务的影响,但我认为如果应用程序首先执行 Mongo 工作并不是什么大问题,而且技术上 如果一个交易偶尔会在中间失败。但是最近出现了一个错误,导致他们始终失败,虽然我已经修复了导致它的错误,但它让我意识到我不能这样做是多么令人讨厌只需在整个工作单元上抛出一个分布式事务。
给定一个支持分布式事务 (SQL Server 2008) 的数据库和另一个不真正支持 任何 ACID 语义 (MongoDB) 的数据库,我有什么方法可以构建应用程序代码,以便两个数据库中的工作单元(“事务”)要么成功,要么回滚?
显然我必须使用一些额外的列/键来跟踪交易的状态 - 但是什么,在什么情况下?
【问题讨论】:
-
完全不相关,但我可以让你给我发电子邮件吗? (我的电子邮件在我的个人资料中)
标签: sql-server sql-server-2008 transactions mongodb