Sharding, Partitioning
λ°μ΄ν°λ² μ΄μ€μ λ³Όλ₯¨μ΄ 컀μ§μλ‘ RW μ μ±λ₯μ κ°μν κ²μ΄κ³ , λ³λͺ©μ§μ μ΄ λ νλ₯ μ΄ λλ€.
λ°λΌμ μ΄λ₯Ό μ μ νκ² λΆν μ μ₯ν νμκ° μλλ°, μ€λ©κ³Ό νν°μ λμ κ·Έ λ°©λ²μ€ νλμ΄λ€.
λμ κ°λ κ³Ό κ·Έ μ°¨μ΄μ μ λν΄μ μμλ³Όν λ°, μ°μ κΈ°λ³Έμ μΌλ‘ Horizontal κ³Ό Vertical μ λν΄μ μ§κ³ λμ΄κ°μ.
Horizontal vs Vertical
Horizontal: λ μ½λλ³λ‘ λΆλ¦¬νλ μν λΆν μ λ»νλ€. μ€ν€λ§ 볡μ ν μ¬μ©μκ° μ§μ ν κΈ°μ€μΌλ‘ λΆλ¦¬νλ€.
Vertical: μ€ν€λ§λ₯Ό λλκ³ μ€ν€λ§μ λ°λΌ λ°μ΄ν°κ° λΆμ°λλ κ²μ λ»νλ€. λΆν μ΄ μ½μ§λ§, λ³κ²½μ΄ μΌμ΄λλ κ²½μ° μΆκ° μ λ ¬μ΄ νμν μ μλ€.
Partitioning
νν°μ λμ λ°μ΄ν°λ² μ΄μ€μ λΆν μ λνλ΄λ μ©μ΄μ΄λ μΌλ°μ μΌλ‘λ ν μ΄λΈμ μ¬λ¬ νμ μ§ν©μΌλ‘ λΆλ¦¬νλ κ²μ λ§νλ€.
Vertical Paritioning(μμ§ νν°μ
λ)
νλμ ν μ΄λΈ λ΄μμ 컬λΌμ κΈ°μ€μΌλ‘ λΆλ¦¬νλ κ²μ λ§νλ€.
ν ν μ΄λΈμ λ§€μ° ν° λ°μ΄ν°λ₯Ό ν¬ν¨νλ 컬λΌμ΄ μκ±°λ λ무 λ§μ 컬λΌμ΄ μ‘΄μ¬νλ κ²½μ° ν μ΄λΈμ μ κ·Όνλ λΉμ©μ΄ λ§€μ° μ»€μ§λ€.
μ΄λ΄λ μμ§ νν°μ λμ ν΅ν΄ μμ£Ό μ κ·Όνλ 컬λΌμ κΈ°μ€μΌλ‘ ν μ΄λΈμ λΆλ¦¬νμ¬ μ±λ₯ ν₯μμ λ Έλ €λ³Ό μ μλ€.
Horizontal Partitioning
λ μ½λ μκ° λ§μ, λ°μ΄ν°κ° λ§μ΄ μΆμ λ ν μ΄λΈμ λ μ½λλ₯Ό μνμΌλ‘ λΆν νλ λ°©λ²μ΄λ€.
μ΄ λ λͺ κ°μ§ λ°©λ²μ΄ μλ€. μ΄ κΈμμ λ°λ‘ λ€λ£¨μ§λ μλλ€.
Range
List
Hash
...
νν°μ λμ μ¬μ©νλ κ²½μ° PK λ Unique key μ λ³κ²½μ΄ νμν μ μλ€.
ν μ΄λΈμ PK, Unique key λ νν°μ ν€κ° ν¬ν¨λμ΄μΌ νκΈ° λλ¬Έμ΄λ€.
μλ₯Ό λ€μ΄, user_id λ₯Ό pk λ‘ μ¬μ©νλ ν μ΄λΈμ created_at μΌλ‘ Range paritioning νκ³ μ ν μ μλ€.
μ΄λ° κ²½μ°λ (user_id, created_at) μΌλ‘ PK λ₯Ό λ³κ²½ν΄μ£Όμ΄μΌ νλ€.
Sharding
ν° ν μ΄λΈμ λμΌν μ€ν€λ§λ₯Ό κ°μ§ μ¬λ¬ λ°μ΄ν°λ² μ΄μ€ μλ²μ shard λ¨μλ‘ λΆμ° μ μ₯νλ λ°©λ²μ΄λ€.
물리μ μΌλ‘ λ€λ₯Έ μλ²μ μ μ₯νκΈ° λλ¬Έμ νΈλν½μ΄ λΆμ°λκ³ , κ°μ©μ±μ΄ λμ΄λλ€.
λ°λλ‘ μ¬λ¬ μ€λμ μλ λ°μ΄ν°λ₯Ό μ‘°μΈν λμλ μ΄λ €μμ΄ μκΈ΄λ€.
μ¦κ°νλ μν¬λ‘λμ λ°λΌ λΆν λΆμ°μ΄ νμν κ²½μ°λ, λΉλν΄μ§ λ°μ΄ν° λ³Όλ₯¨μΌλ‘ μΈν΄ 볡μ μ§μ°, μ½κΈ°/μ°κΈ° μ±λ₯ μ νλ₯Ό κ°μ νκΈ°μν΄ μ€μΌμΌμ μ κ³ λ €ν μ μμΌλ, 물리μ μΈ νκ³λ‘ λ μ΄μ μ€μΌμΌμ μ΄ λΆκ°λ₯ν μμ μ΄ μ€λ©΄ μ€λ©μ κ³ λ €νλ κ²μ΄ μ’λ€.
λ°λλ‘ λ§ν΄μ, μΌμ μμ€κΉμ§λ μ€μΌμΌμ μ νλκ² λ μ’μ μλ μμμ μκ² λ€.
Horizontal Sharding
νν°μ λκ³Ό λ§μ°¬κ°μ§λ‘ κΈ°μ€μ λ°λΌ λλλ€.
Range: μ»¬λΌ κ°μΌλ‘ μ€λλ₯Ό μ§μ νλ, νν°μ λμμμ Range μ κ°μ λ°©μμ΄λ€.
Hash: Hash ν¨μλ₯Ό ν΅ν΄ λ°νλλ κ°μΌλ‘ μ€λλ₯Ό κ²°μ νλ λ°©λ²μ΄λ€.
...
Last updated