---恢复内容开始---
数据分片:系统水平扩展。数据分片存的各个机器上
数据复制:保证数据的高可用性,保证读操作的效率,客服端从多个备份数据中选择物理距离较近的读取,提高单次读取效率
数据路由:分片后找到某条记录的存储位置
缺点:数据一致性
二级映射:
1、key - partation:数据分到数据分片,1对多:一个分片包涵多条数据
2、partation--machine:数据分片到物理机中,1对多:一个物理机包涵多个分片
路由:获得某条记录的值,先通过k-p找到数据分片,再通过p-m找到对应的machine,通过key找到对应的value
数据分片类型:
1、Round Robin:
H(key) = hash(key)mod(K),表示:物理机k个,以key为主键的某条记录所在的机器。
优点:简单
缺点:缺乏灵活性,新增物理机时,之前的物理机之间的映射关系被打乱。需要重新分配
原因:将k-p,p-m两个映射合为一体,由同一个哈希函数决定;k作为参数,造成机器个数与映射函数造成紧耦合。
2、虚拟桶:两层映射
k-p:数据通过哈希函数映射到虚拟桶,1对多,一个虚拟桶存多条记录
p-m:虚拟桶通过查表方式映射到物理机,1对多,一个机器存多个桶
优点:扩展灵活。将数据之间映射到机器,解耦成两级映射
新增机器时,p-m的表只需修改个别条目
3、一致性哈希:
分布式哈希表(DHT)是一种技术概念,实现有多种,比如Chord(和弦)系统中提出的一致性哈希算法。
一致性哈希算法:将哈希数值空间按照大小组成收尾相连的环,每台机器映射到哈希值上,这台机器负责落在一段有序哈希值范围的数据。同时机器记录环中的先驱和后继节点,使之成为有向环。
路由问题:
2. 高效方法:每个节点配置存储m条路由信息的路由表,第i项表示距离当前节点2^i的哈希空间节点。设计三个节点Np(前驱)、Nc(当前)、Ns(后继)。
该算法有两个步骤:
1、c< j <= s,key在C的范围内,返回值
2、不在,找路由表,找到比j小的最大编号节点Nh,让Nh去找,(j > c + 2^i,i对应的节点h)递归进行这两部.
1)当新增节点情况:
Nnew节点先指向Nx(网络中的节点),根据路由算法查询Nnew对应的H(Nnew) = new,找到new的后继ns,ns的前驱是np.
第一:改变np,nnew,ns直接的映射关系,构建新网络(需要稳定性检查)
第二:将ns上的小于new的迁移到new上
2)稳定性检查,对Nc进行检查,
3)当nc离开网络时,正常离开和异常离开,都只影响后继节点的数据
一致性哈希算法缺点:机器节点位置随机,导致负载不均衡。将所有机器视为均等,造成低配置高负载。
4、虚拟节点:将物料节虚拟成若干虚拟节点,分别映射到环状结构的不同位置。使得负载更加,兼顾机器异质性问题
四、范围分片:
主键排序,划分分片,保存分片的映射表,记录最小主键和对应的物理机地址。物理机的管理LSM树。
---恢复内容结束---
数据分片:系统水平扩展。数据分片存的各个机器上
数据复制:保证数据的高可用性,保证读操作的效率,客服端从多个备份数据中选择物理距离较近的读取,提高单次读取效率
数据路由:分片后找到某条记录的存储位置
缺点:数据一致性
二级映射:
1、key - partation:数据分到数据分片,1对多:一个分片包涵多条数据
2、partation--machine:数据分片到物理机中,1对多:一个物理机包涵多个分片
路由:获得某条记录的值,先通过k-p找到数据分片,再通过p-m找到对应的machine,通过key找到对应的value
数据分片类型:
1、Round Robin:
H(key) = hash(key)mod(K),表示:物理机k个,以key为主键的某条记录所在的机器。
优点:简单
缺点:缺乏灵活性,新增物理机时,之前的物理机之间的映射关系被打乱。需要重新分配
原因:将k-p,p-m两个映射合为一体,由同一个哈希函数决定;k作为参数,造成机器个数与映射函数造成紧耦合。
2、虚拟桶:两层映射
k-p:数据通过哈希函数映射到虚拟桶,1对多,一个虚拟桶存多条记录
p-m:虚拟桶通过查表方式映射到物理机,1对多,一个机器存多个桶
优点:扩展灵活。将数据之间映射到机器,解耦成两级映射
新增机器时,p-m的表只需修改个别条目
3、
原文地址:http://www.cnblogs.com/lingli-meng/p/7376714.html