Nosql数据库的四大分类及分布式数据库CAP原理

1. Nosql数据库的四大分类

2. 分布式数据库CAP原理

2.1 关系型数据库事务遵循的ACID规则

首先了解传统关系型数据库事务遵循的ACID规则:

  • 原子性(Atomicity):事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功。
  • 一致性(Consistency):数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
  • 独立性(Isolation):指并发的事务之间不会相互影响,一个事务要访问的数据正在被另一个事务修改,那么在另一个事务提交之前,看到的数据是未改变的。
  • 持久性(Durability):持久性是指事务提交后,他所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

随着软件行业的发展,关系型数据库面临如下挑战:

  • 高并发:一个最典型的就是电商网站,例如双11,几亿大军的点击造成在某一时刻的并发量是很高的,传统的关系型数据库肯定已经是不堪重负了,如Oracle的Session数量推荐的才只有500。
  • 高效率存储海量数据:大数据时代,数据量已经不是用GB、TB来衡量了,而是EB、ZB了,面对这海量的数据,如何高效率的存储这些数据,关系型数据库无法解决这个问题,以Oracle为例,单机的物理扩展不仅成本高,而且难度也加大了。
  • 高可用&高扩展:Oracle即使RAC能扩展数台机器,但数量也是有限。

Nosql的出现即是为了解决这些问题了,但是尽管Nosql解决了上面问题,它并不能用来替代关系型数据库,因为它本身也有着不可克服的缺陷。

2.2 分布式数据库的CAP规则

CAP理论:一个分布式系统不能同时满足一致性(Consistency)可用性(Availability)分区容错性(Tolerance of network Partition)

  • 一致性:任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的。
  • 可用性:每一个操作总是能在确定的时间内返回,也不是系统随时都是可用的。
  • 分区容错性:在出现网络分区(如断网)的情况下,分离的系统也能正常运行。

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三大类:

  • CA  -单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。  如:传统Oracle数据库
  • CP  -满足一致性、分区容错性的系统,通常性能不是特别高。                  如:大多数网站架构的选择
  • AP  -满足可用性、分区容错性的系统,通常可能对一致性要求低一些。    如:redis、mongodb

在分布式系统中,由于分区容忍性是我们必须需要实现的。我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。

2.3 分布式事务的BASE特性

BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。它的目的是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。

BASE是指 基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)

  • 基本可用(Basically Available) 
    基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。 
    电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。
  • 软状态( Soft State) 
    软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现。
  • 最终一致性( Eventual Consistency) 
    最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

  

BASE模型是传统ACID模型的反面,不同于ACID,BASE强调牺牲高一致性,从而获得可用性,数据允许在一段时间内的不一致,只要保证最终一致就可以了。

参考:https://blog.csdn.net/zjcjava/article/details/78893368

原文地址:https://www.cnblogs.com/zjfjava/p/10236658.html

时间: 2024-10-05 23:09:46

Nosql数据库的四大分类及分布式数据库CAP原理的相关文章

NoSQL数据库的四大分类及分析

 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入. NoSQL数据库分四大类: 键值(Key-Value)存储数据库 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据.Key/value模型对于IT系统来说的优势在于简单.易

跨越数据库发展鸿沟,谈分布式数据库技术趋势

金融行业架构转型需求随着移动化与互联网化的不断发展,我国金融行业的商业模式与技术体系已经逐渐走上了与西方世界完全不同的道路.众所周知,欧美国家的移动化普及率远远不如我国,同时人口基数也有着数量级的不同,这就使得国内外金融行业所面临的业务类型.数据量.并发量都存在巨大的差异,导致对整个IT基础设施的需求截然不同. 在最近的一两年中,国内部分科技领先的银行已经率先对微服务与分布式技术进行了探索,一些新建的互联网金融类业务也已经开始尝试使用微服务架构.分布式技术.DevOps框架进行应用的开发与维护.

【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库Sysbench测试最佳实践

引言 作为一名DBA,时常需要对某些数据库进行一些基准测试,进而掌握数据库的性能情况.本文就针对sysbench展开介绍,帮助大家了解sysbench的一般使用方法. ? sysbench简介 什么是基准线测试 所谓基准测试,就是通过对数据库的性能指标进行定量的.可重复的和可对比的测试.基准线测试可以理解为一种针对系统的压力测试.但该测试并不关心业务逻辑,因此测试相对简单和直接.通过测试可分析在当前配置下(包括硬件配置,OS,及数据库参数设置等)应用的性能表现,实现不同应用之间的比较. 具体而言

NoSQL数据库的四大分类的分析

分类 Examples举例 典型应用场景 数据模型 优点 缺点 键值(key-value) Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等. Key 指向 Value 的键值对,通常用hash table来实现 查找速度快 数据无结构化,通常只被当作字符串或者二进制数据 列存储数据库 Cassandra, HBase, Riak 分布式的文件系统 以列簇式存储,将同一列数据存

在大学时的分布式数据库读书笔记 拿出来分享

二章 一.分布式数据库系统的设计 1数据库设计概述 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据. 数据库设计的基本步骤(如图2.1): 需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库的建立和测试 数据库运行和维护. 图2.1 数据库各阶段设计描述,如图2.2 图2.2 2命名规范 2.1 命名总规则 1.  所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线).不允许使用其他字符作为名称. 2.  采用英文单

分布式数据库火了 开源填补数据库空白

原文地址:http://digi.163.com/17/1114/06/D36B05G6001680N8.html 分布式数据库在今年突然成为热点技术.这背后究竟有哪些环境变化导致了这种技术演进,分布式数据库的优势在哪儿?这种分布式数据库在国内现状又是如何?数据库演进方向正如上世纪七十年代关系型数据库诞生一样,分布式数据库的诞生也是建立在数据越来越多,数据重要性越来越强的背景之下. 数据库演进历程数据库是一个电子化的文件柜,是用来存储电子文件的处所.在云计算.大数据的环境背景下,如何帮助用户更好

大数据将促进分布式数据库发展及去Oracle

2015-09-13 张晓东 东方云洞察 点击上面的链接文字,可以快速关注"东方云洞察"公众号 分布式数据库简介 分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库, 通过网络互相连接共同组成一个完整的.全局的逻辑上集中.物理上分布的大型数据库. 分布式并行数据库通过并行使用多个CPU和磁盘来将诸如装载数据.建立索引.执行查询等操作并行化以提升性能的数据库系统.其中最重要的关键

Greenplum 分布式数据库开发入门到精通(架构、部署、管理、开发和调优)【课程分享】

Greenplum 分布式数据库开发入门到精通(架构.部署.管理.开发和调优) 对这个课程有兴趣的朋友,可以加我qq2059055336和我联系 课程大纲 1 Greenplum架构 什么是Greenplum Greenplum体系结构 Greenplum高可用性架构 2 安装Greenplum 配置环境 安装并初始化GPDB系统 启停数据库 配置GP系统 3 分布式数据库存储 数据是如何存储的 分布策略 4 GBDB查询处理 查询命令的执行 SQL查询处理机制 并行查询计划 5 角色权限及客户

解读NoSQL数据库的四大家族[转]

原文地址:http://database.51cto.com/art/201109/291781.htm 在目前的企业IT架构中,系统管理员以及DBA都会考虑使用NoSQL数据库来解决RDBMS所不能解决的问题,特别是互联网行业.传统的关系型数据库主要以表(table)的形式来存储数据,而无法应对非结构化数据的挑战.在进行数据标准化的过程中,关系型数据库性能遭遇了瓶颈. NoSQL顾名思义就是Not-Only SQL,它可以作为关系型数据库的良好补充.在TechTarget数据库之前的报道中,我