a ANATOMY LAB← 返回个人网站/ 002

LESS MOVING, MORE STAYING

节点来来去去,大多数键留在原地。

沿环顺时针,找到第一个节点。动手增删服务器,看看谁需要搬家。

CONSISTENT HASHING让变化,尽量留在局部。
FIG. 002环形寻址仪自动演示 · 查找键
ADHASH / 32BEC
彩色刻度:虚拟节点 · 小点:样本键user:042 → A
同色归属同一物理节点 扫描卡沿顺时针查找
一致性哈希 · 本次迁移0 / 960.0% 的样本键
普通取模 · 同次变化0 / 96相同的键,相同的哈希
物理节点 / 环上索引3 / 3初始分布,尚未变更
96 个固定样本键 / 点选一格追踪深色描边 = 本次迁移

添加或移除节点后,看一看多少格需要换颜色。

01 / CLOCKWISE

键与节点,共用一个环。

键和虚拟节点都映射到 32 位空间。从键的位置顺时针找第一个索引,越过末端就回到起点。

key → hash → successor → owner
02 / LOCAL CHANGE

增删服务器,迁移只改局部。

加入节点时,只有归入新节点的键迁移。移除节点时,只有原本属于它的键重新分配。

移动的是归属,不是键的哈希位置
03 / VIRTUAL NODES

多个索引,仍是一台服务器。

虚拟节点把负责区间分散。增设索引本身会重映射,有限样本不保证每次都更均匀,也不代表多存副本。

96 个样本键 · 归属始终恰好一台