NoSQL数据库入门

前端之家收集整理的这篇文章主要介绍了NoSQL数据库入门前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


CAP理论:

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

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

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

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


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.

原文链接:https://www.f2er.com/nosql/203618.html

猜你在找的NoSQL相关文章