弱一致性就是不完全一致或者完全不一致。自然界没有两片完全一样的叶子,分布式系统本就是明知不可为而为之,CAP理论其实是证明了分布式系统先天不足。

如同人类发明了不合理的克隆技术,逻辑世界通过复制技术可以得到两份完全一致的数据,但是复制是需要时间的,类似《机器猫》里的时空穿梭门,一致性理论有一个 “一致性窗口” 的概念(即:时间窗口)。不过穿梭门是可以穿越到过去的,而一致性窗口只能穿越到未来,方法很简单,就是“等会儿”。

最终一致性就是等会儿就一致了,早晚会一致的。使用最终一致性的关键就是想方设法让用户“等会儿”。办法是让用户知道(对用户透明),这个方法有个学名叫“用户感知到的一致性”,意思就是让用户自己知道数据已经不一致了,你再忍会儿。

好像是缺什么就想补什么,一些原本就不可靠的分布式系统就总想证明自己的可靠性,发现CAP理论以后如获至宝,原来我们是符合“不可靠理论”的,分布式系统本来就不可靠。所以系统你就认了吧(之前是忍了吧)。

虽然我们NoSQL不符合ACID原则,但是我们符合“NO ACID原则”啊。我们换个词,就叫“BASE原则(基本可用性、软状态与最终一致性)”。BASE的含义就是指“NoSQL数据库设计可以通过牺牲一定的数据一致性和容错性来换取高性能的保持甚至提高”。

其实所有的分布式系统都是牺牲C(一致性 Consistency )来换取P(分区容错性 Partition Tolerance ),而不是牺牲A(可用性 Availability )。可用性是所有分布式系统共同追求的特性。

本文摘自PPT《开源数据库中间件MYCAT产品介绍与企业实战-20160115-王金剑-火龙果讲堂》欢迎下载!

弱一致性、CAP、BASE与NoSQL相关推荐

  1. CAP BASE 最终一致性

    女主宣言 1998年,加州大学的计算机科学家 Eric Brewer 提出分布式系统有三个指标,即CAP,而这三个指标不能同时做到.今天小编就为大家分享分布式相关理论,希望能对大家有所帮助. PS:丰 ...

  2. CAP, BASE, 最终一致性和五分钟原则

    CAP,BASE和最终一致性是NoSQL数据库存在的三大基石.而五分钟法则是内存数据存储的理论依据.这个是一切的源头. CAP   C: Consistency 一致性 A: Availability ...

  3. NoSql理解+传统关系型数据库ACID+Nosql的CAP+BASE的理解

    1)什么是Nosql NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL", 泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在 ...

  4. Zookeeper的Paxos算法,(2P/3P/CAP/BASE)一致性协议简单介绍

    2P/3P提交(为了保证事务的ACID) 2P 就是二段提交(RDBMS经常就这种机制,保证强一致性),3P就是三段提交: 2P提交 -- 1阶段:提交事务请求(投票阶段)               ...

  5. cap与一致性(强一致性、弱一致性、最终一致性)

    在足球比赛里,一个球员在一场比赛中进三个球,称之为帽子戏法(Hat-trick).在分布式数据系统中,也有一个帽子原理(CAP Theorem),不过此帽子非彼帽子.CAP原理中,有三个要素: 一致性 ...

  6. ACID+CAP+BASE+Transaction(事务)

    ACID+CAP+BASE+Transaction(事务) 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity).一致性(Consis ...

  7. redis学习之——CAP原理CAP+BASE

    Remote Dictionary Server 分布式系统 分布式系统(distributed system) 由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成.分布式系统是建 ...

  8. 【分布式事务】内容较多CAP/BASE/2PC/3PC/TCC/Sega等等等等~,一次性捋清楚

    分布式事务 概述 什么是分布式事务 分布式事务就是指事务的资源分别位于分布式系统的不同节点之上的事务 分布式事务产生的原因 数据库分库分表 当业务数据量达到单库单表的极限时,就需要考虑分库分表,跨多个 ...

  9. 分布式系统 - CAP, BASE, ACID之间的关系 - 学习/实践

    1.应用场景 主要用于学习分布式系统中CAP, BASE, ACID之间的关系,理清各自的应用场景. 2.学习/操作 1.文档阅读 22 | 想成为架构师,你必须知道CAP理论-极客时间 23 | 想 ...

最新文章

  1. Spring Cloud Config采用Git存储时两种常用的配置策略
  2. 数据结构与索引-- mySql索引诡异事件
  3. Spring的Bean属性依赖注入
  4. Cython 的学习
  5. tomcat 停止 java 线程不停止_Java Tomcat,底层Netty线程不停止
  6. cocos2dx mysql_初次接触cocos2dx
  7. CocosCreator简单小鸟穿越隧道小游戏
  8. asp.net 页面ajax访问被阻塞
  9. iOS xcode Bundle identifier is missing. NotificationServiceTest doesn't have *****
  10. java用多线程实现爬虫_JAVA 多线程爬虫实例详解
  11. Tracking By Detecting的多目标跟踪
  12. spark JAVA 开发环境搭建及远程调试
  13. Android调用C++实现共享内存(Native层)
  14. 鸟哥linux视频教程密码,[鸟哥linux视频教程整理]04_01_Linux用户管理命令详解
  15. python解释器cpython的源码简要介绍
  16. MATLAB 2018b 安装教程(图解)Mac Win Linux下均可安装
  17. 简记_PSpice仿真软件学习笔记(一)
  18. 哈工大软件构造Lab2实验
  19. [jeecms]获取父栏目下的子栏目名称
  20. 独角兽项目 3 - 反叛军

热门文章

  1. macbook上好用的解压软件_全能解压 Mac下最好用的解压缩软件
  2. linu修改open files无效_雷电模拟器修改教程
  3. ansible 配置使用大全资料
  4. 如何将页面换成黑白-滤镜
  5. 显著性检测——GR模型
  6. dell跳过开机硬件检测,戴尔台式电脑自带硬件诊断程序进行硬件检测
  7. IMTOKEN 2.9.9官网1:1双端,用户管理系统,后台可查询用户使用情况
  8. Dubbo Spring Cloud 逆向分析服务注册事件变化的处理过程
  9. 国民统计概论考试能用计算机吗,统计考试《国民经济统计概论》试题
  10. acwing 3496. 特殊年份(蓝桥杯)