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

时间:2023-03-09 23:26:13
《大数据日知录》读书笔记-ch1数据分片与路由

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

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

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

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

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

hash分片方式1:Round Robin

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

新增一台机器:

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

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

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

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

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

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

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

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

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

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

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

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

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

范围分片(range partition):

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

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

  Dynamo Cassandra Riak Voldmort Membase/Couchbase BigTable Azure PNUTS
介绍 Amazon,NoSQL NoSQL 模仿Dynamo Linkedin,NoSQL 内存分布式NoSQL Google Microsoft Yahoo
数据分片 consistent hash consistent hash hash hash hash range range hash+range
  virtual node         B+ tree