一. 数据分片和路由 <<大数据日知录>> 读书笔记

本章主要讲解大数据下如何做数据分片,所谓分片,即将大量数据分散在不同的节点,同时每个存储节点还要做副本备份。

而一般的抽象分片方法是,

  • 先将数据映射到一个分片空间,这是多对一的关系,即一个数据分片区间可能有多条数据
  • 再将分片空间映射到物理node,这也是多对一的关系,即一个物理node对应多个分片空间

具体到实现,通过hash进行分片是比较常见方式,而常见的hash方法是:

  • round robin,hash取模,即通过取模将数据分散到各个node,这种方法跳过了分片空间,数据直接映射到了物理node,简单,但是扩展差,如果要新增一个node,所有的数据都要重新计算映射
  • virtual buckets,虚拟桶,即将数据映射到bucket,bucket再映射到物理node,这和上面的抽象方法很吻合。当新增一个物理node,只要将影响到的bucket的映射更改到新的node
  • 一致性hash,一致性hash先把数据映射到一个圆上,然后将node也映射到圆上,每个node管理它和它之前node之间的数据。新增node时,只影响插入位置到最近的前个node之间的数据映射。删除node时,也只影响位置到最近的前个node之间的数据映射

另外,具体的分片实现上,还有范围分片:

总的来说,即将数据进行一个排序映射,排序后再进行范围划定,然后将某个范围映射到具体的node

原文地址:https://www.cnblogs.com/jiangz222/p/9651259.html