当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。
提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。
然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。
总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。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。 |
相关推荐
《VideoCap:摄像头预览与参数调整利器》 在当今数字化时代,摄像头已经无处不在,无论是电脑内置摄像头还是外接设备,它们都是我们日常生活、工作和娱乐的重要组成部分。VideoCap是一款专为摄像头预览和参数调整...
加密解密分析工具CAP是一款专为密码学爱好者和专业人士设计的实用软件,它主要用于解析和理解各种常见的加密算法。在信息安全领域,加密技术是保护数据隐私和网络安全的关键手段,而CAP工具则为研究和理解这些算法...
CAP 以协同的组织、人员、状态、结果的行为过程为基础,全新构造工作、业务信息化 的模型,与专业化软件的计算能力、专业模型能力相配合而不是竞争,成为基础业务活动的 入口和工作场所,是对业务场景的信息化,...
IC-CAP,全称为Integrated Circuit Characterization and Analysis Program,是一款广泛应用于半导体行业的集成电路特性分析和评估软件。这个压缩包文件“IC-CAP 2016与 IC-CAP 2018安装PJ文件.rar”包含了IC-CAP的...
CAP4(Cryptographic Analysis Program)是一款专门用于进行加密分析的软件工具,它可能被设计用于检测、评估和破解各种加密算法的安全性。下面将详细探讨密码学的基础概念、CAP4可能的功能以及与之相关的文件内容。...
《MicroCap v9.0.0.0 Pro:电子电路仿真与设计的高效工具》 MicroCap是一款在电子工程领域广泛应用的专业级软件,其最新版本MicroCap v9.0.0.0 Pro提供了全面的电路设计和仿真功能,极大地提升了工程师们在电路设计...
IC-CAP(Integrated Circuit Characterization and Analysis Program)是一款专门用于集成电路(IC)特性分析与模型提取的软件工具,由安捷伦公司开发。本教程主要面向技术人员和工程师,旨在介绍使用IC-CAP进行参数...
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或PCAP文件结构详解 CAP或PCAP文件,是一种广泛用于网络数据包捕获的标准文件格式。这种格式最初由Network Associates为他们的Sniffer Pro产品设计,后来被Wireshark等众多网络分析工具采纳。CAP和PCAP文件...
标题 "easier cap驱动程序" 涉及到的是一个特定的硬件设备驱动程序,用于改变USB设备在操作系统中的识别名称。在这个情况下,驱动程序在安装前被识别为"usbtv007",而安装后则变为"OEM Capture"。这意味着驱动程序起...
《Micro-Cap v10.04:一体化电路设计与模拟仿真软件详解》 Micro-Cap v10.04是一款强大的电路设计与混合信号模拟仿真工具,它为电子工程师提供了一个集成化的环境,用于创建电路原理图并进行精确的性能分析。这款...
CAP437-2021航空安全规章信息 CAP437-2021是英国民航局(Civil Aviation Authority,CAA)发布的一份关于离岸直升机着陆区的安全规章。该规章旨在确保离岸油气平台、船只和其他设施的直升机着陆区符合安全标准。该...
Ping 命令报错分析 - cap_set_proc 错误解决方案 Linux 权限控制机制中, capability 是一种基于进程的权限控制机制,它可以将传统的基于用户的权限控制机制进行细粒度的控制。Capability 机制可以控制进程的某些...
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...
【标题】"DSPF28335的CAP代码"涉及的是TI公司的TMS320F28335数字信号处理器上的一种特定功能——CAP(Comparator阿ctive Output,比较器活动输出)模块的源代码实现。该处理器是针对工业自动化、电机控制和电力电子...
Videocap是一款针对个人计算机使用的摄像头录像软件,其主要功能是让用户能够轻松地通过电脑上的摄像头,包括内置摄像头、移动摄像设备以及USB外接摄像头,捕捉和记录视频内容。这款软件小巧精悍,操作简便,同时...
《深入解析:cap_Test抓包工具》 在IT行业中,数据包分析是理解网络通信、调试应用程序和优化网络性能的关键步骤。cap_Test抓包工具,作为一款专为硬件和软件开发者设计的专业工具,其功能强大,操作简便,无论...
Micro-Cap是一款由Spectrum Software开发的电子电路分析程序。从内容来看,这份手册是Micro-Cap的用户指南,提供了从基础操作到高级分析的全面指导。手册涵盖了从创建和编辑简单电路、进行瞬态分析到交流分析等众多...
经典密码学CAP4
在本文中,我们将深入探讨如何在LPC2103微控制器上实现MAT0.0 PWM输出,并通过CAP1.0进行捕获。LPC2103是NXP半导体公司生产的一款基于ARM7TDMI-S内核的微控制器,具有丰富的外设接口和灵活的配置选项,适用于各种...