首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是分布式事务应该满足?

什么是分布式事务应该满足?
EN

Software Engineering用户
提问于 2019-12-26 21:33:53
回答 2查看 235关注 0票数 -4

我在阅读设计数据密集型应用程序时迷失了方向。

在非分布式数据库系统中,非分布式事务满足ACID。

在分布式数据存储中,要满足哪些分布式事务?

  1. ACID还是它的一部分仍然适用于分布式事务?
    • 看起来原子性、隔离性和耐久性仍然适用。
    • 关于复制的一致性是否是分布式事务需求的一部分?注意,单词一致性是从非分布式数据库系统(特定于应用程序)超载到分布式数据系统(应用-非特定,例如线性化一致性,顺序一致性)。

  2. 不确定是否与分布式事务有关:该书及其作者似乎不愿使用CAP定理。

答案不一定来自这本书。我也在寻找关于分布式系统的书籍(例如Coulouris或Tanenbaum的书籍)和数据库系统(例如Silberschatz的书)的答案,但我太困惑了,找不到答案。

谢谢。

EN

回答 2

Software Engineering用户

发布于 2019-12-26 23:33:26

我认为您正在寻找“基础”(基本可用,软状态,最终一致性)。对于分布式数据库来说,碱基通常被认为是一种可接受的替代ACID的方法,或者说是最少的一种。

我喜欢酸碱的这个解释:

  • 基本可用:此约束声明系统确实保证CAP定理数据的可用性;对任何请求都会有响应。但是,这种反应仍然可能是无法获得所请求的数据,或者数据可能处于不一致或不断变化的状态,就像等待支票在银行帐户中结清一样。
  • 软状态:系统的状态可能会随时间而变化,因此即使在没有输入的情况下,也可能由于“最终一致性”而发生更改,因此系统的状态总是“软”的。
  • 最终一致性:一旦停止接收输入,系统最终将变得一致。数据迟早会传播到任何地方,但是系统将继续接收输入,而不是在进入下一个事务之前检查每个事务的一致性。沃纳·沃格尔( Werner )的文章““最终一致--重新审视””涵盖了这个主题,内容要详细得多。

另请参阅:

关于分布式数据库的一致性,来自论文“关于分布式数据库的说明”

分布式环境中的事务可以将所有数据作为单个副本存储在单个站点的外观存档。对于未复制的数据,已表明分布式数据库管理系统只需遵守非分布式数据库管理的规则:

  1. 在使用之前锁定实体。
  2. 将所有锁保存到事务结束为止。

对于复制的数据,需要另外两项原则来存档单个站点、单一副本的等效性:

  1. 在事务结束之前,必须向所有副本广播更新。
  2. 如果更新没有立即广播并由副本执行,那么更新后的所有访问都必须是对更新副本的访问。

结果表明,这四个条件足以保证单拷贝、单站点、串行用户系统的等效性。

本文讨论了各种更新策略和分布式事务管理等。

无论我们是否要求所有节点就事务达成一致,认为事务已经完成,都是一个实现细节。基只要求节点最终在事务完成后的某个点达成一致。

关于一致性的问题,如CAP。基类不能保证返回最新的值。只有这样,如果不再发生写操作,并且客户端继续阅读,它最终将获得最新的价值。也就是说,读到的可能是一种落后的状态。然而,这种状态是有效的,事务的原子性质被保留下来。

另一方面,基本也不要求将数据复制到所有节点以返回数据。根据实现的不同,有可能在尚未将其复制到所有节点时将最最新的值返回给客户端。

票数 1
EN

Software Engineering用户

发布于 2020-01-03 01:00:25

在非分布式数据库系统中,非分布式事务满足ACID。

是。

在分布式数据存储中,要满足哪些分布式事务?

但是在分布式系统上。

示例

队列系统中有一条数据消息,例如,要插入到多个数据库表中的AMQP。因此有两个系统:队列系统和数据库系统。例如,如果数据库中的一个插入失败,您希望撤消整个操作( ACID中的原子性就是这样),因此消息仍然应该在队列系统(而不是删除)中(ACID中的一致性)。

如果您在设计数据密集型应用程序的伟大书籍中读到更多,您将看到“分布式事务”通常使用两阶段提交来实现,这是一种(不太好的-可能会阻塞系统)的特殊情况下的协商一致算法。一个更好的协商一致算法是木筏 (无阻塞).现在已经避免了分布式事务(使用两阶段提交),取而代之的是采用乐观算法(如Raft )的系统。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/402984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档