ITPub博客

首页 > 数据库 > 国内数据库 > 2pc

2pc

国内数据库 作者:mcxiaoracle 时间:2022-06-14 08:13:45 0 删除 编辑

2PC ( Two-Phase Commit缩写)即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Preparephase)、提交阶段(commit phase),2是指两个阶段,P是指准备阶段,C是指提交阶段。
在计算机中部分关系数据库如Oracle、MySQL支持两阶段提交协议



两个阶段过程:

  1. 准备阶段(Prepare phase):事务管理器给每个参与者发送Prepare消息,每个数据库参与者在本地执行事务,并写本地的Undo/Redo日志,此时事务没有提交。 (Undo日志是记录修改前的数据,用于数据库回滚,Redo日志是记录修改后的数据,用于提交事务后写入数 据文件)
  2. 提交阶段(commit phase):如果事务管理器收到了参与者的执行失败或者超时消息时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;参与者根据事务管理器的指令执行提交或者回滚操作,并释放事务处理过程中使用的锁资源。注意:必须在最后阶段释放锁资源。

paxos:

Paxos算法是Lamport宗师提出的一种基于消息传递的分布式一致性算法,使其获得2013年图灵奖。


BA 是 Basically Available (基本可用)

基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。

可以理解为在一个平台中,假设部分出现故障,这个时候系统应该在允许这些故障出现的情况下依旧保持部分功能(应该是核心功能)可以正常使用,另一部分功能出现些许可以允许的问题。


响应时间上的损失:正常情况下的搜索引擎0.5秒即返回给用户结果,而基本可用看的搜索结果可能要1秒,2秒甚至3秒(超过3秒用户就接受不了了)

功能上的损失:在一个电商网站上,正常情况下,用户可以顺利完成每一笔订单,但是到了促销时间,可能为了应对并发,保护购物系统的稳定性,部分用户会被引导到一个降级页面


 


S 是Soft state(软状态)

软状态,允许部分节点的数据存在一定的延时,这个延时不影响可用性。

举个例子,就是一个集群中,需要保持所有节点的数据时时刻刻都一致,这是一种强一致性的要求,这个很有可能会造成可用性的问题。

在保证了可用性的的前提下,允许各个节点在数据的一致性操作的时候有一定的延时。


 


软状态是相对原子性来说的


原子性(硬状态) -> 要求多个节点的数据副本都是一致的,这是一种"硬状态"

软状态(弱状态) -> 允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延迟


E 是Eventually consistent( 最终一致性)


cap:

分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。

分布式系统的最大难点,就是各个节点的状态如何保持一致。CAP理论是在设计分布式系统的过程中,处理数据一致性问题时必须考虑的理论。

一、什么是CAP理论

CAP即:

  • Consistency(一致性)
  • Availability(可用性)
  • Partition tolerance(分区容忍性)

这三个性质对应了分布式系统的三个指标:
而CAP理论说的就是:一个分布式系统,不可能同时做到这三点。如下图:




推荐阅读:

https://blog.csdn.net/u013288190/article/details/114069433

https://zhuanlan.zhihu.com/p/50990721



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949806/viewspace-2900376/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 数据库理论知识
下一篇: MPP 数据库
请登录后发表评论 登录
全部评论
数据方向,了解oracle ,IBM DB2 730

注册时间:2019-09-30

  • 博文量
    286
  • 访问量
    226651