当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。
提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。
然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。
总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。CAP定理(CAP theorem)
在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理(Brewer's theorem), 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
- 一致性(Consistency) (所有节点在同一时间具有相同的数据)
- 可用性(Availability) (保证每个请求不管成功或者失败都有响应)
- 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
- CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
- CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
- AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
NoSQL的优点/缺点
优点:
- - 高可扩展性
- - 分布式计算
- - 低成本
- - 架构的灵活性,半结构化数据
- - 没有复杂的关系
缺点:
- - 没有标准化
- - 有限的查询功能(到目前为止)
- - 最终一致是不直观的程序
BASE
BASE:Basically Available, Soft-state, Eventually Consistent。 由 Eric Brewer 定义。
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
BASE是NoSQL数据库通常对可用性及一致性的弱要求原则:
- Basically Availble --基本可用
- Soft-state --软状态/柔性事务。 "Soft state" 可以理解为"无连接"的, 而 "Hard state" 是"面向连接"的
- Eventual Consistency -- 最终一致性, 也是是 ACID 的最终目的。
ACID vs BASE
原子性(Atomicity) | 基本可用(Basically Available) |
一致性(Consistency) | 软状态/柔性事务(Soft state) |
隔离性(Isolation) | 最终一致性 (Eventual consistency) |
持久性 (Durable) |
NoSQL 数据库分类
类型 |
部分代表
|
特点 |
列存储 |
Hbase Cassandra Hypertable |
顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 |
文档存储 |
MongoDB CouchDB |
文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。 |
key-value存储 |
Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis |
可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能) |
图存储 |
Neo4J FlockDB |
图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 |
对象存储 |
db4o Versant |
通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。 |
xml数据库 |
Berkeley DB XML BaseX |
高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。 |
相关推荐
经典密码学CAP4
bgp-con-nexthop-before.cap bgp-con.cap bgp-in.cap bgp-no-nei.cap bgp-simple.cap DHCP Client.cap dot1x-error.cap dot1x-login.cap dot1x-logina.cap eapol or eap or nbns-dot1x.cap gmrp.cap gvrp.cap h3...
make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/cap_ffmpeg.o] Error 1 make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2 make: *** [all] Error 2 解决办法: 通过...
CAP 以协同的组织、人员、状态、结果的行为过程为基础,全新构造工作、业务信息化 的模型,与专业化软件的计算能力、专业模型能力相配合而不是竞争,成为基础业务活动的 入口和工作场所,是对业务场景的信息化,...
easier cap驱动程序,安装前显示为usbtv007,安装后显示为OEM Caputer
The CAP theorem [Bre12] says that you can only have two of the three desirable properties of: • C: Consistency, which we can think of as serializability for this discussion; • A: 100% availability, ...
bgp-con-nexthop-before.cap bgp-con.cap bgp-in.cap bgp-no-nei.cap bgp-simple.cap DHCP Client.cap dot1x-error.cap dot1x-login.cap dot1x-logina.cap eapol or eap or nbns-dot1x.cap gmrp.cap gvrp...
IC-CAP-教程
CAP 是AT&T提出的调制方式,是一种无载波的正交幅度调制(QAM),数据信号在发送前被压缩,然后沿电话线发送,在接收端重组。CAP的主要优点为:载波频率可变,在一个频率周期或波特内传输2到9位二进制数据,因此在...
ctrl2cap.exe /install" from install directory - RebootTo uninstall: - Run "ctrl2cap.exe /uninstall" from install directory - RebootTo build source: - Copy ddksrcinputincntddkbd.h to sys...
CAP4加密分析软件,《经典密码学与现代密码学》一书中的示例软件,学习该书必备
The CAP Theorem is a frequently cited impossibility result in distributed systems, especially among NoSQL distributed databases. In this paper we survey some of the confusion about the meaning of CAP,...
在java中对.cap文件的解析。前提需要一个JCDK的工具包。在oracle官网中可以下载,搜索java card。我用的是:JCDK3.0.4_ClassicEdition。在bin中的scriptgen.bat中需要改动set JAVA_HOME=jdk的地址,我用1.6jdk的。...
wifi无线破解cap包、hc22000包,hashcat练手专用
2. 双击运行文件夹【AfuWin64Cap】下的【F】文件 3. 程序自动运行,根据黑框提示按【任意键】后等待加载完成 按提示输出 【Y】,操作后只需等待自动更新重启即可.期间切勿按电源键及操作键盘鼠标等外设(如因非教程...
程序说明了STM320F28335芯片下CAP模块的使用,程序中包含部分注释,可以快速根据程序学习CAP模块的运行过程
Linux平台下cap格式数据包转成pcap格式(用Wireshark工具查看)数据包。
WPA/CAP无线跑包工具高速跑包、选择字典和CAP文件然后点开始跑包即可方便又简单小巧又实用速度超快,无广告无捆绑无毒软件绿色环保!
CAP437-2021
MicroCap_12 已经开源免费,是一款用于模拟和数字电路原理图设计和仿真的软件。Micro-Cap为交互式设计和仿真电路提供电子环境。Micro-Cap不断扩展其功能。目前,该软件是一个现代化,简单,用户友好的界面和许多用于...