`
erichi101
  • 浏览: 11261 次
文章分类
社区版块
存档分类
最新评论

CAP

阅读更多
一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。

当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。

提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。

然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。

总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。
链接:https://www.zhihu.com/question/54105974/answer/139037688
 
 

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

ACIDBASE
原子性(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.zip

    《VideoCap:摄像头预览与参数调整利器》 在当今数字化时代,摄像头已经无处不在,无论是电脑内置摄像头还是外接设备,它们都是我们日常生活、工作和娱乐的重要组成部分。VideoCap是一款专为摄像头预览和参数调整...

    加密解密分析工具CAP

    加密解密分析工具CAP是一款专为密码学爱好者和专业人士设计的实用软件,它主要用于解析和理解各种常见的加密算法。在信息安全领域,加密技术是保护数据隐私和网络安全的关键手段,而CAP工具则为研究和理解这些算法...

    致远 CAP4 应用定制平台 白皮书 .pdf

    CAP 以协同的组织、人员、状态、结果的行为过程为基础,全新构造工作、业务信息化 的模型,与专业化软件的计算能力、专业模型能力相配合而不是竞争,成为基础业务活动的 入口和工作场所,是对业务场景的信息化,...

    IC-CAP 2016与 IC-CAP 2018安装PJ文件.rar

    IC-CAP,全称为Integrated Circuit Characterization and Analysis Program,是一款广泛应用于半导体行业的集成电路特性分析和评估软件。这个压缩包文件“IC-CAP 2016与 IC-CAP 2018安装PJ文件.rar”包含了IC-CAP的...

    密码学CAP4cryptographic analysis program

    CAP4(Cryptographic Analysis Program)是一款专门用于进行加密分析的软件工具,它可能被设计用于检测、评估和破解各种加密算法的安全性。下面将详细探讨密码学的基础概念、CAP4可能的功能以及与之相关的文件内容。...

    Micro-Cap v9.0.0.0 Pro

    《MicroCap v9.0.0.0 Pro:电子电路仿真与设计的高效工具》 MicroCap是一款在电子工程领域广泛应用的专业级软件,其最新版本MicroCap v9.0.0.0 Pro提供了全面的电路设计和仿真功能,极大地提升了工程师们在电路设计...

    IC-CAP-教程.pdf

    IC-CAP(Integrated Circuit Characterization and Analysis Program)是一款专门用于集成电路(IC)特性分析与模型提取的软件工具,由安捷伦公司开发。本教程主要面向技术人员和工程师,旨在介绍使用IC-CAP进行参数...

    cap_ffmpeg_impl.hpp

    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文件结构详解 CAP或PCAP文件,是一种广泛用于网络数据包捕获的标准文件格式。这种格式最初由Network Associates为他们的Sniffer Pro产品设计,后来被Wireshark等众多网络分析工具采纳。CAP和PCAP文件...

    easier cap驱动程序

    标题 "easier cap驱动程序" 涉及到的是一个特定的硬件设备驱动程序,用于改变USB设备在操作系统中的识别名称。在这个情况下,驱动程序在安装前被识别为"usbtv007",而安装后则变为"OEM Capture"。这意味着驱动程序起...

    Micro-Cap v10.04

    《Micro-Cap v10.04:一体化电路设计与模拟仿真软件详解》 Micro-Cap v10.04是一款强大的电路设计与混合信号模拟仿真工具,它为电子工程师提供了一个集成化的环境,用于创建电路原理图并进行精确的性能分析。这款...

    CAP437-2021

    CAP437-2021航空安全规章信息 CAP437-2021是英国民航局(Civil Aviation Authority,CAA)发布的一份关于离岸直升机着陆区的安全规章。该规章旨在确保离岸油气平台、船只和其他设施的直升机着陆区符合安全标准。该...

    ping_cap_set_proc报错分析.docx

    Ping 命令报错分析 - cap_set_proc 错误解决方案 Linux 权限控制机制中, capability 是一种基于进程的权限控制机制,它可以将传统的基于用户的权限控制机制进行细粒度的控制。Capability 机制可以控制进程的某些...

    史上最全的数据包,cap文件

    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代码

    【标题】"DSPF28335的CAP代码"涉及的是TI公司的TMS320F28335数字信号处理器上的一种特定功能——CAP(Comparator阿ctive Output,比较器活动输出)模块的源代码实现。该处理器是针对工业自动化、电机控制和电力电子...

    videocap摄像头录像软件

    Videocap是一款针对个人计算机使用的摄像头录像软件,其主要功能是让用户能够轻松地通过电脑上的摄像头,包括内置摄像头、移动摄像设备以及USB外接摄像头,捕捉和记录视频内容。这款软件小巧精悍,操作简便,同时...

    cap_Test抓包工具

    《深入解析:cap_Test抓包工具》 在IT行业中,数据包分析是理解网络通信、调试应用程序和优化网络性能的关键步骤。cap_Test抓包工具,作为一款专为硬件和软件开发者设计的专业工具,其功能强大,操作简便,无论...

    micro cap11.pdf

    Micro-Cap是一款由Spectrum Software开发的电子电路分析程序。从内容来看,这份手册是Micro-Cap的用户指南,提供了从基础操作到高级分析的全面指导。手册涵盖了从创建和编辑简单电路、进行瞬态分析到交流分析等众多...

    经典密码学CAP4 CAP4

    经典密码学CAP4

    lpc2103的MAT0.0PWM输出CAP1.0捕获

    在本文中,我们将深入探讨如何在LPC2103微控制器上实现MAT0.0 PWM输出,并通过CAP1.0进行捕获。LPC2103是NXP半导体公司生产的一款基于ARM7TDMI-S内核的微控制器,具有丰富的外设接口和灵活的配置选项,适用于各种...

Global site tag (gtag.js) - Google Analytics