Advertisement

从工程实践的角度理解一致性哈希算法(Consistent Hashing)

阅读量:

文章结构概览

  • 需求背景
    • 基本原理
      • Hash环形空间
      • Hash键值映射
      • 节点 增加删除
      • 映射 数据倾斜
      • Hash 虚拟节点

注:一致性哈希算法能够在后台数据库服务器及缓存服务器的数据存储、访问和持久化等多个方面提供有效的解决方案,尤其在分布式数据存储场景中展现出显著的优势。为了后续针对PostgreSQL数据库的功能开发(如Oracle Rac等),有必要重新梳理一致性哈希算法的核心原理及其特性。

饭前小甜点:假设当前有5台Redis数据库服务器,当数据对象Object 6进入系统时,通过散列公式hash(i)%5计算其应存放的服务器位置。若Hash(i) = i%N,则该数据会被分配至编号为1的服务器。然而,若此时新增了一台服务器,散列公式则变为Hash(i)%6,此时Object 6将被分配至0号服务器,但实际上该数据仍保存在1号服务器上。

于是 这就引发了一个问题了 !!??!!

需求背景分析

在实际应用场景中:当部署N台缓存服务器(Cache)时,一种广泛采用的负载均衡策略是对特定资源object x的请求,通过简单线性哈希:hash(x) = (ax + b) mod (N)的方式计算其哈希值,并将其均匀地分配至某一缓存服务

全部评论 (0)

还没有任何评论哟~