前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >10分钟了解 Two phase commit

10分钟了解 Two phase commit

作者头像
程序员小王
发布2019-07-19 10:45:50
9691
发布2019-07-19 10:45:50
举报
文章被收录于专栏:架构说架构说

大家好

我是小王,今天是我分享第1个知识点:2阶段提交。

一共下面几个部分

第一部分 2pc故障模型

请看一下 选择哪一个呢?

图片

第二部分 数据模型

数据的原子性

第三部分 一致性

在简绍2pc之前,我提到2个基本概念,这是才是分析2pc秘籍

  • 故障模型 :
  • 状态机复制

状态机:是有命令和状态组成。

下面3个图说明很清楚

命令:

协调状态:

  1. 准备好状态:已经发起投票 (1)
  2. 提交 :参与者都投票yes (3 )
  3. 完成:表示2阶段协议已经结束

参与者:

准备提交:已经投票yes,但是没有收到事务提交 处于不确定状态(2) 已经提交:事务提交完成。(4)

图片

故障处理

假如协调者挂了,参与者没挂

1 准备状态---因为服务器没有做任何判决,直接像参与发送abort指令 2 3 已提交状态 -发起docommi命令 4 完成状态:不需要做任何操作 假如参与者故障

1 准备好状态:没有参与投票,直接放弃 2 不确定状态:发送询问请求,来查询事务的状态 在判断是否放弃还是执行 3 已经提交状态:这是协调者需要做事情。 4 假如协调者和参与同时故障 1 2 3 4 二阶段无法解决的问题:协调者再发出commit消息之后宕机,而唯一接收到这条消息的参与者同时也宕机了。那么即使协调者通过选举协议产生了新的协调者,这条事务的状态也是不确定的,没人知道事务是否被已经提交。

第四部分 future

2阶段提交允许单点故障,但是 故障之后必须恢复,然后业务继续执行。 在局域网效率非常高。 XA 就是 X/Open DTP 定义的交易中间件与数据库之间的接口规范(即接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等。XA 接口函数由数据库厂商提供

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Offer多多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一部分 2pc故障模型
  • 第二部分 数据模型
  • 第三部分 一致性
  • 故障处理
  • 第四部分 future
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档