【问题标题】:Distributed transactions + Strong consistency : Feasibility?分布式事务+强一致性:可行性?
【发布时间】:2019-03-29 20:54:39
【问题描述】:

背景

我知道很多大型系统,尤其是在电子商务领域,其中使用分布式事务以及最终一致性

问题:

是否有可能进行具有强一致性保证的分布式事务(通过两个网络资源)。 我一直在理论上听到/阅读它(使用 2 阶段提交),但从未有机会遇到这样的系统。

或者根本不可能实现它?任何见解/相关文章表示赞赏。

【问题讨论】:

    标签: database networking distributed-computing eventual-consistency 2phase-commit


    【解决方案1】:

    我马上可以推荐至少两个符合您要求的现代分布式数据库:TiKVCocroachDB。它们都是 CP 系统(以CAP theorem 而言)都支持 ACID,都使用两阶段提交算法进行分布式事务。也可以在PostgreSQL 中设置两阶段提交。而且我相信有更多的数据库支持分布式事务,同时保持强大的一致性保证。

    据我所知,分布式强一致性数据库设计没有太多选择:您可以使用两阶段提交(或其变体,如三阶段提交),或者像 Raft 这样的分布式共识算法。我建议您阅读Martin Kleppman 的综合指南。

    【讨论】:

    • 谢谢维塔利。同意,根据定义,这些 CP 系统应该支持强一致性。尽管如此,是否存在任何偏远的极端情况(或在设计时做出的假设),这些 CP 系统可以在这些情况下权衡一致性?
    • @Harshit 你能澄清你的最后一个问题吗?你的意思是如果有CP数据库可以牺牲一致性的情况吗?我相信这种情况必须被视为错误。在网络分裂的情况下,CP 数据库的所有成员必须切换到只读模式并禁用所有变异请求(如 INSERT、UPDATE、DELETE 等)。这将保持强一致性保证。一些 CP 数据库可能会略微削弱减少延迟的要求,因为对于成功处理的请求,预期不是来自每个节点而是来自大多数节点的一致响应。
    • 宾果游戏。感谢您的澄清。
    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 2011-11-18
    • 2015-06-05
    • 1970-01-01
    • 2018-06-25
    • 2018-08-13
    • 1970-01-01
    • 2017-07-01
    相关资源
    最近更新 更多