目前主流大数据存储使用横向扩展(scale out)而非传统数据库纵向扩展(scale up)的方式。因此涉及数据分片、数据路由(routing)、数据一致性问题

《大数据日知录》读书笔记-ch1数据分片与路由 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

二级映射关系:key-partition映射,partition-machine映射

首先找到partition(比如hash),然后找machine(路由routing)

《大数据日知录》读书笔记-ch1数据分片与路由 随笔 第2张

hash分片方式1:Round Robin

《大数据日知录》读书笔记-ch1数据分片与路由 随笔 第3张

新增一台机器:

《大数据日知录》读书笔记-ch1数据分片与路由 随笔 第4张

需要重新分配数据归属,灵活性差

 

hash分片方式2:虚拟桶(virtual buckets)

《大数据日知录》读书笔记-ch1数据分片与路由 随笔 第5张

 

 

hash分片方式3:一致性hash(consistent hashing)

提高灵活性:集群各机器连成一个环

《大数据日知录》读书笔记-ch1数据分片与路由 随笔 第6张

路由问题:每个节点配置路由表(finger table)。N14的路由表:

《大数据日知录》读书笔记-ch1数据分片与路由 随笔 第7张

每个机器根据路由表转发请求,直到查到value数据。

 

新节点加入、离开集群需要结合稳定性检测策略,更新前后继指针

 

稳定性检测:定期向前后继节点发送请求,更新前后继指针

 

解决负载不均衡/机器异质性问题:引入虚拟节点,将每个物理节点虚拟成多个虚拟节点,分别映射到hash环不同位置

 

范围分片(range partition):

《大数据日知录》读书笔记-ch1数据分片与路由 随笔 第8张

数据分片在物理机管理往往采用LSM树,BigTable采用类似B+树的多层结构

 

  Dynamo Cassandra Riak Voldmort Membase/Couchbase BigTable Azure PNUTS
介绍         内存分布式NoSQL      
数据分片 consistent hash consistent hash hash hash hash range range hash+range
  virtual node         B+ tree    
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄