NoSQL数据库入门
来源:互联网 发布:java语言编辑器 编辑:程序博客网 时间:2024/06/05 07:31
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.
- NoSQL数据库入门
- NoSQL数据库入门
- NoSQL数据库入门概述
- NoSQL数据库入门概述
- NoSQL数据库入门概述
- NoSQL 数据库 Redis 快速入门
- nosql数据库入门笔记一
- 主流NOSQL数据库之MongoDB快速入门
- NoSQL与Mongo DB数据库入门
- 开源NoSQL数据库:ArangoDB 入门指南
- 《NoSQL入门》关于NoSQL
- Nosql入门
- NoSQL入门
- nosql数据库
- NOSQL数据库
- NOSQL数据库
- NoSQL数据库
- NOSQL数据库
- cocos2d 物理平抛,斜抛运动
- hive结合hbase数据处理解决方案测评二(优化篇)
- 如何在Java中 提供 RESTful Web 服务
- hbase 双网卡 多网卡
- python 输出日志跑不动 死锁现象
- NoSQL数据库入门
- hdu 2063 过山车 二分图匹配 匈牙利算法 解题报告
- R语言中的cor和cov
- B - Roads in the North POJ-2631
- 2011年ESRI北京站IDL视频教程(全)
- eclipse 查看java进程内存情况
- hdu 1081 To The Max(暴力枚举+最大连续子数组和)
- poj 1936 All in All
- C++中this指针详解