一致性雜湊 (Consistent Hashing)

★★★★★Reviewed

FromSystem Design InterviewDDIAGrokking Advanced

📚 From the Books

一致性雜湊 (Consistent Hashing)ConceptData Distribution

當節點數改變時,普通 hash(key) % N 會讓幾乎所有 key 重新搬家。一致性雜湊把節點與 key 映到同一個環上,只搬動受影響的一小段

🧠 Core Ideas

TIP

把雜湊空間想成一個 0 ~ 2³²−1 的環。key 順時針找到的第一個節點就是它的歸屬。加/刪節點只影響環上相鄰的一段。

⚖️ Tradeoffs

樸素環 — 資料傾斜問題
  • 節點少時,環上分佈不均 → 有的節點負載遠大於別人。
  • key 的分佈也可能不均,加劇熱點。
虛擬節點 (Virtual Nodes) — 標準解
  • 每個實體節點對應環上多個虛擬節點(如 100~200 個)。
  • 分佈更平滑,標準差隨虛擬節點數下降;移除節點時負載也較平均地被分攤。
  • 代價:要維護更多 metadata,且虛擬節點數要隨叢集規模調整。

🔑 Takeaways

✍️ My Notes

No notes yet — jot your takeaways or Q&A here.

📖 Further Reading

🔗 Dive Deeper