Design Consistent Hashing
Last updated
Was this helpful?
Last updated
Was this helpful?
μνμ κ·λͺ¨ νμ₯μ μν΄μλ μμ² λλ λ°μ΄ν°κ° κ° μλ²μ κ· λ±νκ² λΆλ°°λλ κ²μ΄ μ€μνλ€. μμ ν΄μλ μ΄λ¬ν λͺ©μ μ λ¬μ±νκΈ° μν΄ λ³΄νΈμ μΌλ‘ μ¬μ©λλ ν΄μ λ°©μμ΄λ€.
μλ²λ€μ λΆνλ₯Ό κ· λ±νκ² λλκΈ° μν΄ κ°λ¨ν ν΄μ ν¨μλ₯Ό μ¬μ©ν μ μλ€.(serverIndex = hash(key) % serverCount
)
μ΄ λ°©λ²μ μλ² νμ ν¬κΈ°κ° κ³ μ λμ΄ μκ±°λ, λ°μ΄ν° λΆν¬κ° κ· λ±ν λλ μ λμνμ§λ§ λ€μμ κ²½μ° λ¬Έμ κ° λ°μνλ€.
μλ²κ° μμ λκ±°λ μΆκ°λλ μν© λ°μ
μλ² νμ ν¬κΈ°κ° λ³κ²½λμ΄ serverIndexκ° λ³κ²½
κΈ°μ‘΄ μμ²μ΄ λ€λ₯Έ μλ²μ μ λ¬λμ΄ λκ·λͺ¨ μΊμ λ―Έμ€κ° λ°μ
κΈ°μ‘΄ ν΄μ ν¨μλ μ΄ λ¬Έμ κ° λ°μνμ¬, μμ ν΄μλ₯Ό μ¬μ©νμ¬ μ΄ λ¬Έμ λ₯Ό ν¨κ³Όμ μΌλ‘ ν΄κ²°νκ³ μλ€.
μμ ν΄μλ ν΄μ ν
μ΄λΈ ν¬κΈ°κ° μ‘°μ λ λ λλΆλΆ μ¬λ°°μΉλλ μ ν΅μ ν΄μ ν
μ΄λΈκ³Όλ λ€λ₯΄κ² μ€μ§ ν€μ κ°μ/μ¬λ‘―μ κ°μ
λ§νΌμ ν€λ§ μ¬λ°°μΉνλ©΄ λλ€.
ν΄μ 곡κ°μ λ²μλ₯Ό λ§ ννλ‘ νννκ³ , κ° μλ²μ ν€λ₯Ό μ΄ λ§ μμ λ°°μΉνμ¬ ν€λ₯Ό μλ²μ ν λΉνλ λ°©μμ μ¬μ©νλ€.
κ° ν€λ λλ¨Έμ§ μ°μ°μ΄ μλ, ν΄λΉ ν€μ μμΉλ‘λΆν° μκ³ λ°©ν₯μΌλ‘ λ§μ νμνμ¬ κ°μ₯ κ°κΉμ΄ μλ²μ ν λΉνκ² λλ€.
μλ² μΆκ° μ: Key 0
λ§ Server 0
μμ Server 4
λ‘ μ¬λ°°μΉ
μλ² μμ μ: Key 2
λ§ Server 2
μμ Server 3
λ‘ μ¬λ°°μΉ
μ¬λ°°μΉ λ¬Έμ λ ν΄κ²°λμμΌλ, νν°μ μ ν¬κΈ° λΆκ· λ± λ¬Έμ λ ν€κ° λΆκ· λ±νκ² λΆν¬λμ΄ νλμ μλ²μ λ무 λ§μ ν€ νΉμ λ무 μ μ ν€κ° ν λΉλλ λ¬Έμ κ° λ°μν μ μλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ κ°μ λ ΈλλΌλ κΈ°λ²μ μ¬μ©νλ€.
μ¬μ§μΌλ‘ μΈ κ°μ κ°μ λ Έλλ₯Ό ν λΉνμ§λ§ μ€μ λ‘λ ν¨μ¬ ν° κ°μ μ¬μ©νμ¬ κ· λ±νκ² ν λΉν μ μλλ‘ νλ€.(λ릴μλ‘ κ· λ±ν΄μ§μ§λ§ κ°μ λ Έλλ₯Ό μν λ°μ΄ν° 곡κ°μ΄ 컀μ§κ² λ¨)
μ°Έκ³ μλ£