分布式数据库详解(内附集中式数据库和分布式数据库的区别) ...

打印 上一主题 下一主题

主题 685|帖子 685|积分 2055

分布式事务

一.事务:
   事务可以看做是一次大的活动,它由差别的小活动组成,这些活动要么全部成功,要么全部失败
二 分布式事务:
   1.界说:
分布式事务是指事务的到场者、支持事务的服务器、资源服务器以及事务管理器分别位于差别的分布式体系的差别节点之上。
2 CAP理论:
CAP定理是由加州大学伯克利分校Eric Brewer传授提出来的,他指出WEB服务无法同时满足一下3个属性:

a.Consistency(一致性)
        在分布式环境中,一致性是指数据在多个副本之间是否可以或许保持数据一致的特性。在一致性的需求 下,当一个体系在数据一致的状态下实行更新操纵后,应该包管体系的数据仍然处于一致的状态。 例如一个将数据副天职布在差别分布式节点上的体系来说,如果对第一个节点的数据进行了更新操纵而且更新成功后,其他节点上的数据也应该得到更新,而且全部用户都可以读取到其最新的值, 那么如许的体系就被认为具有强一致性(或严格的一致性,最终一致性)。
b.Availability(可用性)
在集群中一部分节点故障后,集群团体是否还能响应客户端的读写请求(对数据更新具备高可用性)
c.Partition tolerance(分区容错性)
         分区容错性束缚了一个分布式体系需要具有如下特性:分布式体系在遇到任何网络分区故障的时候,仍然需要可以或许包管对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。
这三个根本需求,最多只能同时满足其中的两项
3 Base 理论
由 eBay 架构师提出,是对 CAP 中一致性和可用性权衡的效果,其来源与对大规模互联网体系分布式实践的结论,是基于 CAP 定理逐步演化而来的。
    BASE 是 Basically Available(根本可用)、Soft state(软状态)和 Eventually consistent(最终一致性)三个词语的简写。
     纵然无法做到强一致性(Strong Consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使体系达到最终一致性(Eventual consistency)。
a.Basically Available(根本可用):分布式体系在出现不可预知的故障时,答应损失部分可用性。
b    Soft state(软状态):答应部分节点的数据存在一定的延时,这个延时不影响体系团体的可用性。即不需要完全符合 ACID 的原子性
c  Eventually consistent(最终一致性):最终一致性夸大的是体系中全部的数据副本,在经过一段时间的同步后,最终可以或许达到一个一致的状态。因此,最终一致性的本质是需要体系包管最终数据可以或许达到一致,而不需要实时包管体系数据的强一致性。
三.单个DB节点事务的隔离级别


1.read uncommitted(读未提交)
      一个事务还没提交时,它修改的数据都可以被别的事务看到。
       可能存在:脏读、不可重复读、幻读
2.read committed(读已提交)
      一个事务提交之后,它修改的数据才会被别的事务看到
       可能存在:不可重复读、幻读
3.repeatable read(可重复读)
       分析事务包管可以或许再次读取相同的数据而不会失败,纵然其他的事务把这个数据改了,你也不会看到前后两次查询的数据的差别
       可能存在:幻读

4.serializable(串行化)
     数据的读和写都会加锁,读会加读锁,写会加写锁。当遇到读写锁冲突时,后访问的事务必须等前一个事务实行完成后,再继续实行。
   脏读:事务A修改数据,事务B读取了数据后事务A报错回滚,修改的数据没有提交到数据库中,此时事务B读取修改的数据就是一个脏读,也就是一个事务读取到另一个事务未提交的数据就是脏读。
 不可重复读:事务A在同一个事务上多次读取同一个数据,在事务A还没有竣事时,事务B修改了该数据,由于事务B的修改,导致事务A两次读取的数据不一致,就出现了不可以重复读的现象。
 幻读:事务A根据条件查询得到N条数据,但此时事务B更改或者增加了M条符合事务A查询的条件的数据。如许当事务A再次查询的时候发现会有N + M条数据,产生了幻读。
四. 分布式事务隔离级别


  分布式数据库的存储节点层,还是遵守单机DB的事务隔离级别的,但是在盘算节点层新增了分布式事务的隔离级别,如下:
1.脏读(UR)
     查询时,读取的数据中答应包罗脏数据,不查验来自各存储节点的数据是否活泼,即不查验来自个存储节点的数据是否来自同一版本的副本数据。
2.强一致读(CR)
     查询时,读取的数据中不答应包罗脏数据,查验来自各存储节点的数据不能为活泼状态,即查验来自各存储节点的数据必须为同一版本或同一时刻的副本数据。
3.单节点写(SW)
不思量分布式事务下的对部分已提交事务的数据的修改,即不查验修改的数据是否活泼。
4.强一致写(CW)
需要思量分布式事务下的对部分已提交事务的数据的修改,需要查验修改的数据是否处于活泼状态,活泼状态的数据不能修改,只能修改已经全局提交成功的数据。
5.读已提交(MVCC_RC)
查询时,未全局提交的数据和在本查询语句后发起的已提交数据不可见,返回全局一致数据快照。同一个事务中,差别的select查询根据select查询发起时间取一致性快照。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表