gpt4 book ai didi

sql-server - 是否可以使用非 ACID 数据库模拟分布式事务?

转载 作者:可可西里 更新时间:2023-11-01 09:47:20 27 4
gpt4 key购买 nike

我们有一个将 SQL Server 2008 与 MongoDB 结合使用的系统,使用后者提供大量临时报告功能。它们的交集不多,但在一两个地方它们确实需要一起工作。

我总是有点担心交易的影响,但我认为如果应用程序首先执行 Mongo 工作,这并不是什么大问题,而且从技术上讲,不是那么大的问题交易偶尔会在中间失败。但是最近出现了一个错误,导致他们一直失败,虽然我已经修复了导致它的错误,但它让我意识到我无法修复它是多么令人讨厌只需在整个工作单元上抛出一个分布式事务。

给定一个支持分布式事务的数据库 (SQL Server 2008) 和另一个不真正支持任何 ACID 语义的数据库 (MongoDB),有什么方法可以构建应用程序代码,以便工作单元(“事务”)在两个数据库中要么成功要么被回滚?

显然,我必须使用一些额外的列/键来跟踪交易的状态——但是什么,在什么情况下?

最佳答案

您的一致性要求是什么?如果 Mongo 上的临时报告并不总是完全最新的,这可以吗?

如果不是,那么我认为您的处境很艰难。

如果是,那么我想我会选择一些事务性 MSMQ 和 SQL Server,然后设置一个(或多个)服务来通过处理来自队列的消息来更新 Mongo。

关于sql-server - 是否可以使用非 ACID 数据库模拟分布式事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4359997/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com