[分布式]一致性哈希


[Update 2016.9.25]
这两天写了一个简单的一致性哈希的demo.
https://github.com/exctPuzzles/exctpuzzs/tree/master/solutions/consistent_hash

一致性哈希有几个最重要的点:

  1. 环状哈希地址空间
  2. 虚拟节点(很多)
  3. 一个物理节点对应很多虚拟节点(几百个),这些虚拟节点分散在这个空间上(如何分散 - 哈希)
    3.1 虚拟结点与物理节点的对应关系如何实现(这是所谓的omap吗?)
  4. 既对数据取哈希后求模,也对虚拟节点哈希后求模,然后每个虚拟节点存着他前面直到上一个虚拟节点的这些数据

  • 环状 + 数据/节点双hash - 解决传统哈希增减机器时带来的巨大开销.(扩展性差)
    传统哈希增减机器时要更改哈希地址空间,这会导致大部分数据都需要迁移,并且对应的缓存也都将失效。

  • 虚拟节点(负载均衡)
    负载均衡,如果直接把物理机器映射到环上,那么几次增减后有可能某些机器需要承担大量数据。


  • ceph的一致性哈希算法是CRUSH
    唉,读完再更新吧........(无奈脸)

你可能感兴趣的:([分布式]一致性哈希)