20200404 NoSQL笔记(二)

第二章 NoSQL的数据一致性与水平扩展

一、 关系型数据库ACID特征

  1. 事务是描述数据库处理的一个完整的逻辑过程
    是一个操作序列,是一个不可分割的工作单位
  2. ACID特性
  1. 原子性(Atomicity)
    事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生
  2. 一致性(Consistency)
    在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏
  3. 隔离性(Isolation)
    多个事务并发访问时,事务之间是隔离的,一个事务不影响其它事务运行效果
  4. 持久性(Durability)
    一旦事务执行成功,则该事务对数据库进行的所有的更新都是持久的,即使数据库故障而受破坏,数据库管理系统也能恢复

二、 CAP理论

  1. CAP特性(最多满足两个特性)
  1. 强一致性:系统在执行某项操作后仍然处于一致的状态
    在分布式系统中,更新操作执行成功之后所有的用户都应该读取到最新的值
  2. 可用性:每一个操作总是能够在一定的时间内返回结果
  3. 分区容错性:分布式系统中的某个节点或者网络分区出现故障时,整个系统仍然能对外提供满足一致性和可用性的服务
  1. CA: 优先保证强一致性和可用性,放弃分区容错
    这也意味着放弃系统的扩展性,系统不再是分布式的,有违设计的初衷
  2. CP: 优先保证强一致性和分区容错性,放弃可用性
    一旦发生网络故障或者消息丢失,就会牺牲用户体验,等恢复后用户才逐渐能访问
  3. AP: 优先保证可用性和分区容错性,放弃强一致性
    跟CP一样,放弃强一致性不是说一致性就不保证了,保证最终一致性
    在这里插入图片描述

三、 DNS系统(Domain Name System)

  1. DNS:可以将域名和IP地址相互映射的一个分布式数据库
  2. 层次域名空间:英特网采用层次树状结构的命名方法
    在这里插入图片描述
  3. 域名服务器
    一个域名服务器所负责(或者有权限的)的管辖范围称为区
    在这里插入图片描述
  4. 域名的解析过程——解析器
  1. 递归查询方式
    在这里插入图片描述
  2. 迭代查询方式
    在这里插入图片描述
    四、 数据一致性模型和BASE
  1. 基本可用(Basically Available): 系统能够基本运行、一直提供服务
  2. 软状态(Soft-state):系统不要求一直保持强一致状态
  3. 最终一致性(Eventual consistency)
  1. 因果一致性
  2. 读自写一致性
  3. 会话一致性
  4. 单调一致性
  5. 时间轴一致性

五、 NoSQL数据水平扩展

  1. 在这里插入图片描述
  1. 分片:
    将数据分成几部分,每部分放在一个服务器上,这个服务器处理这个分片数据所有的读和写请求
  2. 主从复制(避免了写入的冲突)
    在主从架构中,数据被复制到多个节点,一个节点被指定为主,其他都是从
    主通常负责处理数据的更新,并启动单独的进程将数据同步到从
    在这里插入图片描述
  3. 对等复制(避免了单点写入的故障):所有副本地位都是相同的,没有主从
    在这里插入图片描述
  4. 分片和复制可以只使用一种,也可以同时使用两种技术
  1. 分区方案Sharding
  1. 概述:
    Sharding是指将大数据库分布到多个物理节点上的分区方案
    Sharding系统是shared-nothing系统,指各个处理单元都有自己的CPU/内存/盘等,不存在共享资源
    数据分片方法:区间划分、轮流放置和一致性哈希
  2. 区间划分
    a) 情况1:数据分配不均,调整导致的连锁迁移
    b) 情况2:增加或者删除节点导致的连锁迁移
    c) MongoDB采取每个节点多个区间方案
  3. 轮流划分
    轮流放置是指每个键都会被依次放置在下一个节点上,以此进行循环。通常按照主键的值来决定次序从而进行划分
    缺点:数据迁移量大
  4. 一致性Hash算法
    a) 一致性Hash算法基本场景
    把一个对象object映射到N个高速缓冲服务器cache
    一台高速缓冲服务器坏掉;增加一台高速缓冲服务器
    【单调性】如果已经有一些内容通过哈希分派到相应的缓冲中,又有新的缓冲加入到系统中。哈希结果能够保证原有已分配的内容可以被映射到旧的缓冲中,而不会被映射到新的缓冲集合中
    b) 步骤
    在这里插入图片描述在这里插入图片描述
    c) 优点
    均匀:由于采用的哈希函数是与输入无关的均匀函数,因此当键值和节点都非常的多的时候,一致性哈希可以达到很好的分布式均匀性
    迁移时数量小:由于特殊的放置规则,一致性哈希在节点数据发生变动时可以将影响控制在局部区间内,从而保证非常少的数据迁移(接近理论上的最小值)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值