【哈希分片之哈希取模法(round robin)】接着上一章数据路由分片抽象模型,本节介绍一种此抽象模型的实现方案-round robin(哈希取模法)
假设有K台物理机 根据以下方法就可以实现数据分片
H(key) = hash(key)mod K
物理机编号为0到K-1根据以上哈希方法 可以把数据分配到每台机器上,取数据时也是使用相同的方法。
但是如果新增一台物理机,哈希函数就变成以下形式
H(key)=hash(key)mode(K+1)
之前存储好的数据和物理机之间的映射关系完全被打乱,所有数据需要重新分配,对于在线存储系统缺乏灵活扩展性。
对照上节的数据分片路由抽象模型可以看出,哈希取模法是把物理机和数据分片两个功能合二为一了,每台物理机对应一个数据分片,key-patition,partition-machine合为一体,用用一个hash函数来承担,这样就造成了,物理机和hash函数的严重耦合,故缺乏灵活扩展性
文章图片
推荐阅读
- 架构|架构师之路(二)程序员眼里的架构师
- 程序员|DevEcoStudio的及其传感器的使用,闭关在家37天“吃透”这份345页PDF
- java|阿里工作8年,肝到P8就剩这份学习笔记了,已助朋友拿到10个Offer