NoSQL数据库入门

 

CAP理论:

(1)Consistency一致性,任何一个读操作总能读取到之前完成的写操作结果。

(2)Avaliability 可用性,每一个操作总是能够在确定的时间内返回。

(3)Tolerance of network Partition 分区容忍性,在出现网络分布的情况下,仍能够满足一致性和可用性。

(4)最多只能同时满足以上两种需求。

由于当前网络硬件肯定会出现延迟丢包等问题,所以分区容忍性必须实现.

CAP理论不能同时满足的场景:

(1)数据同步需要时间(C),响应时间(A)也要保障,那么机器数量就要少,这样的情况下,容错性(P)就无法保证.

(2)数据同步需要时间(C), 机器数量也要够用(P), 但是数据同步城要时间,所以不能同时足可用性. 代表是Zookeeper

(3)机器数量够多(P), 响应时间要正常 (A),那么数据不能及时同步到每个节点上. 代表是eureka

 

 

BASE模型:

(1)反ACID模型,牺牲高一致性,获得可用性和可靠性。

(2)基本可用,支持分区失败;软状态,状态可以有一段时间不同步,异步;最终一致,状态达到最终一致就可以。

(3)按功能划分数据库,sharding分片。

 

关于内存和磁盘:

(1)如果一条记录频繁被访问,就应该放到内存里,否则的话就应该待在硬盘上按需访问,这个临界点就是5分钟。

(2)把随机读写交给RAM,磁盘尽量用作顺序读写及持久化。

 

一致性哈希:

(1)要解决的问题:分布式Key-Value系统中,加入有N个服务节点,如何将一个key对应的value对象均匀的映射到N个节点上进行存储。

 

Quorum NRW 机制:

(1)数据复制的一致性协议实现。这个协议有三个关键值:R、W、N。

(2)N:复制的节点数。R:成功读操作的最小节点数。W:成功写操作的最小节点数。通过W+R>N保证强一致性。

 

Vector clock:

(1)一个(node,counter)的向量,记录数据历史版本。

 

Merkle Tree:

(1)又被称为Hash Tree,是一种树状Hash结构。

(2)当节点宕机后数据恢复时,用于数据检验与数据同步。

(3)结构简单,叶子节眯是一些Hash值,非叶子节点保存一个范围的key值是由子节点计算Hash得来,自底向上构建。

(4)比较过程,自顶向下。先从根节点比较,相同则表示完全一致,否则子节点继续进行交换比较。

(5)传输过程中只传输要比较的层,大大减少网络传输量。

 

Paxos算法:

(1)解决分布式系统如何就某个值(决议)达成一致,基于消息传递模型。

(2)参与角色:proposers,acceptors, leaners。

a.value只有被Proposers踢出后才能批准。

b.在一次paxos算法实例中,只批准一个value。

c.learners只能获得被批准的value。

(3)算法过程:

a.proposer选择一个提案编号n,并将prepare请求发送给acceptors中的一个多数派。

b.acceptor收到prepare消息后,如果提案编号大于已经恢复的所有prepare消息,则将自己上次批准的回复给proposer,并承诺不再批准小于n的编号。

c.当一个Proposor收到多数acceptors对prepare的回复后,向回复的acceptor发送accept请求,包括n和value。

d.acceptor在不会违背向proposer提出的承诺前提下,批准此请求。

e.learners在accept后按n的大小学习value.

 

最后欢迎大家访问我的个人网站:1024s

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值