1. 数据分片与路由
抽象模型为两级映射关系,第一级映射是key-partition映射,第二级映射是partition-machine映射。
数据分片有哈希分片和范围分片:
哈希分片只支持点查询,如cassandra,voltmort,membase;
范围分片支持范围查询,google的bigtable 和ms的azure;
同时支持两种的yahoo的pnuts。
2.哈希分片时进行数据分片的常见手段,其中最常见的3中哈希分片方式分表是:轮询、虚拟桶、一致哈希方法
2.1 轮询也称哈希取模方法
H(key)=hash(key)modK
优点:实现简单
缺点:缺乏灵活性,如新增或者减少一台物理机时需要重新hash
原因:将key-partition映射和partition-machine映射合二为一了,两部分都由同一哈希函数完成,导致了机器和映射函数的紧耦合。
2.2 虚拟桶
key-partition映射采用哈希函数,partition-machine采用表格管理实现。
2.3 一致性哈希
分布式哈希表DHT(distributed hash table)
3. 范围分片
首先将所有记录的主键进行排序,然后在排好序的主键空间里将记录划分成数据分片,每个数据分片存储有序的主键空间片段内的所有记录。
数据分片在物理机的管理方式往往采用LSM树。
参考文献:
【1】http://blog.csdn.net/gdhuyufei/article/details/42101231