NoSQL的三大基石:cap,Base,最终一致性

 
5.4.1 cap理论(帽子理论):
 
consistency:一致性
availability:可用性
partition tolerance:分区容忍性

理想的目标是设计一个分布式文件系统,同时实现CAP三个性质,但证明不可能,只能三者取二。

1)牺牲一致性换取可用性的实例:

无法传播的情况发生时,若p2要求马上读副本v2(保证可用性),数据不一致(牺牲一致性);

若p2等到p1把数据传过来再读副本v2(保证一致性),已经过了一段时间(牺牲可用性); 
 
2)面对Cap问题有以下几种选择:
CA(传统数据库:mysql)
CP(HBase)
AP(Cassandra)

3)不同产品在CAP理论下的不同设计原则

5.4.2 BASE和最终一致性:

全称:Basically Available, Soft state 和 Eventual consistency

关系数据库追求ACID四性;
NoSQL数据库追求BASE特性;
 
 
1)BASE:

最终一致性:弱一致性的特例
可能有段时间不一致,但最终会达到一致。
 
 
2)最终一致性  可区分为

1.因果一致性:
进程A通知进程B,它更新了一个数据项,B后续访问就可以获得A写入的最新值。但C和D没有被通知,只能最终访问到,但不能马上访问到。
2.读己之所写一致性
3..单调读一致性
4.会话一致性
5.单调写一致性
 
 
3)实现各种类型的一致性:

保证强一致性的最小设定:R+W=N+1


对于分布式系统来说,为了保证高可用性,比如HDFS,一般设置 副本数量N>=3
 

(实例)

大数据技术原理与应用【第五讲】NoSQL数据库:5.4 NoSQL的三大基石的更多相关文章

  1. 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)

    1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...

  2. 大数据技术原理与应用【第五讲】NoSQL数据库:5.1 NoSQL概论&5.2 NoSQL与关系数据库的比较

    5.1 NoSQL概论 最初:反SQL 概念演变,现在:Not only SQL 特点: 1.灵活的可扩展性 所以支持海量数据存储 2.灵活的数据模型 例如:HBase 3.和云计算的紧密结合 (一) ...

  3. 大数据技术原理与应用——大数据处理架构Hadoop

    Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构. Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以 ...

  4. 大数据技术原理与应用【第五讲】NoSQL数据库:5.6 文档数据库MongoDB

    文档数据库介于关系数据库和NoSql之间: 是最像关系数据库的一款产品,也是当前最热门的一款产品. 1.MongoDB简介:   1)     2)文档类型BSON(Binary JSON),结构类似 ...

  5. 大数据技术原理与应用【第五讲】NoSQL数据库:5.3 NoSQL的四大类型

    5.3 NoSQL的四大类型   5.3.1 键值数据库和列族数据库 可以分为四大类产品:键值数据库,列族数据库,文档数据库,图数据库 (代表)   1.键值数据库:   用的多:redis云数据库: ...

  6. 大数据技术原理与应用【第五讲】NoSQL数据库:5.5 从NoSQL到NewSQL数据库

    应用场景: OldSql数据库:希望一种架构就能支持多种应用场景,但证明不可能.   NewSql数据库:同时具备OldSql和NoSQL各自的优点:水平可扩展性,强一致性,事务一致性,支持查询,支持 ...

  7. 大数据技术原理与应用——分布式文件系统HDFS

    分布式文件系统概述 相对于传统的本地文件系统而言,分布式文件系统(Distribute File System)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统.分布式文件系统的设计一般采用 ...

  8. 大数据技术原理与应用:【第二讲】大数据处理架构Hadoop

    2.1 Hadoop概论 创始人:Doug Cutting 1.简介: 开源免费; 操作简单,极大降低使用的复杂性; Hadoop是Java开发的; 在Hadoop上开发应用支持多种编程语言.不限于J ...

  9. 学一下HDFS,很不错(大数据技术原理及应用)

    http://study.163.com/course/courseMain.htm?courseId=1002887002 里面的HDFS这一部分.

随机推荐

  1. zeebe prometheus 监控配置

    zeebe 默认已经集成了prometheus,以下是一个简单的配置,关于grafana 的集成需要调整下 dashboard,目前网上的已经太老了 docker-compose 文件   versi ...

  2. Nginx与安全有关的几个配置

    Nginx与安全有关的几个配置 原创: 37丫37 运维咖啡吧 昨天 安全无小事,安全防范从nginx配置做起 上一篇文章<Nginx的几个常用配置和技巧>收到了不错的反馈,这里再总结下n ...

  3. appium--uiautomatorviewer的使用

    uiautomatorviewer的使用 uiautomatorviewer也是获取页面元素属性的工具,相比之前介绍的appium desktop来说,方便了很多,appium desktop需要从启 ...

  4. CSP2019 Emiya 家今天的饭 题解

    这题在考场上只会O(n^3 m),拿了84分.. 先讲84分,考虑容斥,用总方案减去不合法方案,也就是枚举每一种食材,求用它做超过\(\lfloor \frac{k}{2} \rfloor\) 道菜的 ...

  5. CF1151F Sonya and Informatics(概率期望,DP,矩阵快速幂)

    明明是水题结果没切掉……降智了…… 首先令 $c$ 为序列中 $0$ 的个数,那么排序后序列肯定是前面 $c$ 个 $0$,后面 $n-c$ 个 $1$. 那么就能上 DP 了.(居然卡在这里……) ...

  6. [LeetCode] 147. Insertion Sort List 链表插入排序

    Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...

  7. Django性能优化的几种方法

    1.一次性取出你所需要的数据 单一动作,需要多次连接数据库里的时候,最好一次性取出所有需要的数据,减少连接数据库的次数.此类需求推荐使用QuerySet.select_related()和prefet ...

  8. 推荐一款移动端日历App吉日历

    推荐一款移动端日历App吉日历 一 应用描述 万年历.日历.农历.黄历.假期安排.天气预报.记事提醒便捷查看,一目了然! 二 功能介绍: 1.万年历:精美的日期展示,完整的节日日历随意查看,节假日.休 ...

  9. Golang(八)go modules 学习

    0. 前言 最近加入鹅厂学习 k8s,组内使用 Go 1.11 以上的 go modules 管理依赖,因此整理了相关资料 本文严重参考原文:初窥Go module 1. 传统 Golang 包依赖管 ...

  10. linux shell根据端口返回进程号杀死进程的方法

    linux shell根据端口返回进程号杀死进程的方法<pre>kill `lsof -t -i:9501`</pre>这个就是杀死9501端口的进程号