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

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

  • 先将数据映射到一个分片空间,这是多对一的关系,即一个数据分片区间可能有多条数据
  • 再将分片空间映射到物理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

最新文章

  1. CoreLocation定位技术
  2. leetcode 171
  3. Android中通过反射获取资源Id
  4. spring验证事务的代码,用到了mockito
  5. Unity 编辑器扩展自定义窗体
  6. 深入探讨MFC消息循环和消息泵
  7. 【学习笔记】锋利的jQuery(二)DOM操作
  8. HDU 1681 Frobenius(完全背包+标记装满)
  9. php Yii2使用registerJs或registerCss报错syntax error, unexpected end of file
  10. asp.net C# 实现阿里大鱼和云片网短信接口类
  11. ArcGIS API for JavaScript 4.x 本地部署之跨域问题解决法:CORS
  12. 使用免费 mongodb数据库 + 免费node.js服务器搭建小程序接口
  13. ngx_string()错误分析
  14. C#中将ListView数据导出为excel(转载)
  15. C# winform程序怎么打包成安装项目(VS2010图解)
  16. JavaScript面试技巧(一):基础知识
  17. AMD64 Instruction-Level Debugging With dbx
  18. 应用nslookup命令查看A记录、MX记录、CNAME记录和NS记录
  19. C# RedisRateLimiter
  20. [SCOI2018]游泳池(计算几何+分数规划+最大权闭合子图)

热门文章

  1. docker安装mtproto及报错解决方案
  2. FJUT-1370 记录一次解题过程
  3. cogs 182. [USACO Jan07] 均衡队形 线段树
  4. JDK 和JRE区别
  5. AVR单片机教程——定时器中断
  6. Zero down time upgrade with OGG -from 11g to 12c.
  7. java面试| 线程面试题集合
  8. mongoskin 是让 Node.js 支持 MongoDB 的内嵌访问层。
  9. 工具之grep
  10. nginx文件压缩