书摘|大数据管理系统原理与技术——NoSQL数据库中的事务

Posted 大数据与数据科学家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了书摘|大数据管理系统原理与技术——NoSQL数据库中的事务相关的知识,希望对你有一定的参考价值。



CAP理论



    CAP理论是2000年Eric Brewer在ACM PODC会议上首次提出,是NoSQL数据库的理论基础。2002年Seth Gilbert和Nancy Lynch证明了CAP理论的正确性,如图所示。

图 CAP理论

CAP定理:在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。

强一致性(C,这里指强一致性):每一个读操作获得最写操作的结果,否则返回错误。这意味着在分布式系统中,所有数据备份在同一时刻是否具有同样的值。(相当于所有节点访问同样的最新数据副本)。 即如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么    所有读操作都不能读到这个数据,对调用者而言数据具有强一致性(strong consistency) (又叫原子性 atomic、线性一致性 linearizable consistency)。

可用性(Availability)。每一个请求,都能得到响应。请求只需要在一定时间内返回即可,结果可以是成功或者失败,也不需要确保返回的是最新版本的信息。

    “一定时间内”是指,系统的结果必须在给定时间内返回,如果超时则被认为不可用。

    “返回结果”是指系统返回一个确定的结果,成功或者失败,是一个确定的状态,而不是不确定的值。

分区容错性(Partition Tolerance)。大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(Partition),区间通信可能失败,分区容错性的含义是:在网络中断,消息丢失的情况下,系统照样能够工作。

    根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项。系统设计者一般需要在CAP三个特性之间做出选择,三种不同的组合对应着放弃了CAP三个特性当中的一个。

CA:放弃Partition tolerance ,将所有的数据(与事务相关的)都放到一台机器上,缺点是这个选择会严重影响数据的规模。例如传统数据库、集群数据库、LDAP、GFS 文件系统。

CP:放弃Availability ,一旦遇到partition事件,受影响的服务需要等待数据一致,因此在等待期间就无法对外提供服务。例如分布式数据库、分布式加锁维护并发的系统。

AP:放弃Consistency ,接受事情会变得“最终一致 (Eventually Consistent)”, 例如DNS、Coda等。

    由于在大规模的系统中,网络硬件很肯定会出现延迟丢包等问题,所以分区容忍性是必须需要实现的。分布式系统通常在可用性和一致性之间权衡。例如,对于互联网应用,主机多,数据大,部署分散。所以节点故障,网络故障是常态。这种情况下,要保证A和P。舍弃C虽然会影响客户体验,但保证AP,才能不影响用户使用流程。另外一个情况是金融领域,必须要保证C和A,舍弃P。所以金融领域的网络设备故障可能会造成用户无法使用。



BASE原则



    BASE就是为了解决关系数据库强一致性引起的可用性降低而提出的解决方案。BASE原则是指:

1.基本可用

    基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性----注意,这绝不等价于系统不可用。(1)响应时间上的损失。正常情况下,一个在线搜索引擎需要在0.5秒之内返回给用户相应的查询结果,但由于出现故障,查询结果的响应时间增加了1~2秒(2)系统功能上的损失:正常情况下,在一个电子商务网站上进行购物的时候,消费者几乎能够顺利完成每一笔订单,但是在一些节日大促购物高峰的时候,由于消费者的购物行为激增,为了保护购物系统的稳定性,部分消费者可能会被引导到一个等待页面。

2.软状态或者柔性状态

    软状态指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。

3.最终一致性

    最终一致性强调的是所有的数据副本,在经过一段时间的同步之后,最终都能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

    总的来说,BASE理论面向的是大型高可用可扩展的分布式系统,和传统的事物ACID特性是相反的,它完全不同于ACID的强一致性模型,而是通过牺牲强一致性来获得可用性,并允许数据在一段时间内是不一致的,但最终达到一致状态。但同时,在实际的分布式场景中,不同业务单元和组件对数据一致性的要求是不同的,因此在具体的分布式系统架构设计过程中,ACID特性和BASE理论往往又会结合在一起。


更多精彩内容,点击下方链接购买

以上是关于书摘|大数据管理系统原理与技术——NoSQL数据库中的事务的主要内容,如果未能解决你的问题,请参考以下文章

大数据理论体系总结--数据仓库管理与全链路数据体系

NoSQL 与大数据

大数据项目车联网之项目基石与前瞻

国外大数据网站都有哪些

Laxcus大数据管理系统集群单机版

[大数据项目]-0010-基于大数据技术推荐系统算法案例实战视频教