BASE理论

BASE是Basiclly Available(基本可用),Soft state(软状态),Eventually consistent(最终一致性)三个短语的缩写。
BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,其核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

基本可用

基本可用是指分布式系统在出现不可预知的故障的时候,允许损失部分可用性——但请注意,这绝不等价于系统不可用。基本可用的两个例子:

  • 响应事件上的损失:正常情况下,一个在线搜索引擎需要再0.5秒之内返回给用户响应的查询结果,但由于出现故障,查询结果的响应时间增加到了1~2秒。
  • 功能上的损失:正常情况下,在一个电子商务网站上进行购物,消费者能够顺利完成每一笔订单,但是在一些节目大促销高峰,由于消费者的购物行为激增,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级的页面。

弱状态

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

最终一致性

最终一致性强调的是系统所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要试试保证系统数据的强一致性。
在实际工程实践中,最终一致性存在以下五类主要变种:
- 因果一致性(Causal consistency):如果进程A在更新完某个数据项后通知了进程B,那么进程B之后对数据项的访问都应该能够或得到进程A更新后的最新值,并且如果进程B要对改数据项进行更新操作的话,务必基于进程A更新后的最新值,即不能发生丢失更新情况。与此同时,与进程A无因果关系的进程C的数据访问则没有这样的显示。
- 读己之所写(Read your write):指进程A更新一个数据项之后,它自己总是能够访问到更新过的最新值,而不会看到旧值。也就是说,对于单个数据获取者来说,其读取到的数据,一定不会比自己上次写入的值旧。因此读己之所写,也是一种特殊的因果一致性。
- 会话一致性(Session consistency):会话一致性将对系统数据的访问过程框定在了一个会话中,系统能保证在同一个有效的会话中实现“读己之所写”的一致性,也就是说,执行更新操作之后,客户端能够在一个会话中始终读取到改数据项的最新值。
- 单调读一致性(Monotonic read consistency):读一致性是指如果一个进程从系统中读取出一个数据项的某个值后,那么系统对于该进程后续的任何数据访问都不应该返回更旧的值。
- 单调写一致性(Monotonic write consistency):单调写一致性:一个系统需要能够保证来自同一个进程的写操作被顺利的执行。
总的来说,BASE理论面向的是大型高可用可扩展的分布式系统,和传统事务的ACID特性是相反的,它完全不同于ACID 的强一致性模型,而是提出通过牺牲强一致性来获得可用性,并允许数据在同一段时间内是不一致的,但最终达到一致的状态。但同时,在实际的分布式场景中,不同业务单元和组件对数据一致性的要求是不同的,因此在具体的分布式系统架构设计过程中,ACID特性与BASE理论往往又会结合在一起使用。

时间: 2024-09-28 05:13:09

BASE理论的相关文章

CAP和BASE理论

1. CAP理论 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想.2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP.之后,CAP理论正式成为分布式计算领域的公认定理. CAP理论为:一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项. 1.1 一致性(Consistency) 一致性指"

关于CAP理论的一些笔记

CAP的概念 2000年,Eric Brewer 教授在 ACM 分布式计算年会上指出了著名的 CAP 理论: 分布式系统不可能同时满足一致性(C: Consistency),可用性(A: Availability)和分区容错性(P: Tolerance of network Partition)这三个需求.大约两年后,Seth Gilbert 和 Nancy lynch 两人证明了CAP理论的正确性. 三者的含义如下: Consistency:一致性,一个服务是一致的完整操作或完全不操作(A

【转载】ACID、Data Replication、CAP与BASE

[ACID]      在传统数据库系统中,事务具有 ACID 4 个属性( Jim Gray 在<事务处理:概念与技术>中对事务进行了详尽的讨论). 原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行. 一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态.这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性:事务结束时,所有的内部数据结构(如B树索引或双向链表)也都必须是正确的. 隔离性(Isolatio

这可能不只是一篇面经(BAT面试)

转载请标明出处:  http://blog.csdn.net/djy1992/article/details/76087532 本文出自:[奥特曼超人的博客] 文章来自牛客网   作者:xiaoteng 0. 写在之前 首先呢我的面试经历和一些面霸和收割机的大神相比绝不算丰富,但我这三个月应该能代表很大一部分人的心路历程:从无忧无虑也无知的状态,然后遭遇挫败,跌入低谷,连续数天的黑暗,慢慢调整,逼着自己不能松懈,看到改变,收获肯定,分享经历. 先大概说下自己的面试经历吧(详细的面试过程和面试题解

分布式事务云市场分析

背景 全局事务服务GTS上个月开始在阿里云上公测,之前我们也发表了一篇「破解世界性技术难题!GTS让分布式事务简单高效」的文章,引起了业界广泛关注,接受了大量的咨询,故希望通过本文让大家对GTS有更深入的理解. GTS在目前在阿里内外部已经有较大规模的应用,有100多个用户,其中专有云大用户就有10多个,预计今年将有更大规模的市场需求爆发. 用户诉求是什么 分布式事务解决的用户最本质诉求是什么?数据一致. 大中企业有一个共同的诉求是数据一致,几乎覆盖到各个行业. 比如说零售行业,库存与出货的数据

【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

集群概念介绍 集群术语须知 服务硬件:指提供计算服务的硬件,比如 PC 机.PC 服务器. 服务实体:服务实体通常指服务软体和服务硬体. 节点(node):运行 Heartbeat 进程的一个独立主机称为节点,节点是 HA 的核心组成部分,每个节点上运行着操作系统和Heartbeat 软件服务. 资源(resource):资源是一个节点可以控制的实体,当节点发生故障时,这些资源能够被其他节点接管.如: 磁盘分区.文件系统.IP 地址.应用程序服务.共享存储 事件(event):事件也就是集群中可

成为Java顶尖程序员 ,看这10本书就够了

  岁末年初,想储备一些优质书籍的看这里.近期发现并收藏了这几本书,一方面作为自己的书单,另一方面也想推荐给大家. "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处:   1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料   2.对着书上的代码自己敲的时候方便   "看完书之后再次提升自我的最好途径是看一些相关的好博文",我个人认为这是学习的第二步,因为一本书

分布式服务化系统一致性的“最佳实干”

李艳鹏 易宝支付平台架构师,专注线上和线下支付平台的应用架构和技术架构的规划与落地,负责交易.支付.渠道.账务.计费.风控.对账等系统的设计与实现,在移动支付.聚合支付.合规账户.扫码支付.标记化支付等业务场景上有产品应用架构规划的经验. 1 背景 一致性是一个抽象的.具有多重含义的计算机术语,在不同应用场景下,有不同的定义和含义.在传统的IT时代,一致性通常指强一致性,强一致性通常体现在你中有我.我中有你.浑然一体:而在互联网时代,一致性的含义远远超出了它原有的含义,在我们讨论互联网时代的一致

【独家】一文读懂非关系型数据库(NoSQL)

前言 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". 现代计算系统每天在网络上都会产生庞大的数据量.这些数据有很大一部分是由关系型数据库管理系统(RDBMSs)来处理,其严谨成熟的数学理论基础使得数据建模和应用程序编程更加简单. 但随着信息化的浪潮和互联网的兴起,传统的RDBMS在一些业务上开始出现问题.首先,对数据库存储的容量要求越来越高,单机无法满足需求,很多时候需要用集群来解决问题,而RDBMS由于要支持join,union等操作,一般不支持分