我们有一个系统,与SQL Server 2008一起使用MongoDB,后者用于许多即席报告功能。它们不是很相互关联,但确实有一两个地方它们需要共同工作。
我一直稍微担心事务的影响,但认为如果应用程序先处理Mongo,则这不是一个大问题,而且偶尔中途事务失败在技术上也不是一个大问题。但最近出现了一个错误,导致它们一直失败,虽然我已经修复了导致它的错误,但它让我意识到,我不能只在整个工作单元上扔一个分布式事务,这真的很讨厌。
鉴于一个支持分布式事务(SQL Server 2008)的数据库和另一个不支持任何 ACID语义的数据库(MongoDB),是否有一种方法可以将应用程序代码结构化,以便在两个数据库中成功完成或回滚一个工作单元(“事务”)?
显然,我需要使用一些额外的列/键来跟踪事务的状态 - 但是在什么情况下以及如何使用呢?
我一直稍微担心事务的影响,但认为如果应用程序先处理Mongo,则这不是一个大问题,而且偶尔中途事务失败在技术上也不是一个大问题。但最近出现了一个错误,导致它们一直失败,虽然我已经修复了导致它的错误,但它让我意识到,我不能只在整个工作单元上扔一个分布式事务,这真的很讨厌。
鉴于一个支持分布式事务(SQL Server 2008)的数据库和另一个不支持任何 ACID语义的数据库(MongoDB),是否有一种方法可以将应用程序代码结构化,以便在两个数据库中成功完成或回滚一个工作单元(“事务”)?
显然,我需要使用一些额外的列/键来跟踪事务的状态 - 但是在什么情况下以及如何使用呢?