[Database] Sharding & Replication & Clustering


DB Sharding, Replication, Clustering

๐Ÿš€Partitioning

ํŒŒํ‹ฐ์…”๋‹์€ ์ผ๋ฐ˜์ ์œผ๋กœ DB ํ…Œ์ด๋ธ”์„ ์ž‘์€ ๋ถ€๋ถ„์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๊ฐ€๋ฆฌํ‚ด.
Column์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„๋Š” Vertical Partitioning(์ˆ˜์ง)๊ณผ Row๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„๋Š” Horizontal Partioning(์ˆ˜ํ‰)์ด ์žˆ๋‹ค.

๐Ÿš€Sharding

์ƒค๋”ฉ์€ ์ˆ˜ํ‰ ํŒŒํ‹ฐ์…”๋‹์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ. Shard key๋ผ๊ณ  ์•Œ๋ ค์ง„ ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜๋‰จ. Shard key ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ Sharding์ด ์žˆ์Œ.
์ƒค๋”ฉ์€ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณต์ œ๋จ. ๋ฐ์ดํ„ฐ๋Š” Shard key๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์—ฌ๋Ÿฌ ๋…ธ๋“œ๋“ค์— ๋‚˜๋ˆ„์–ด ์ €์žฅ๋จ.
๊ฒ€์ƒ‰ ์š”์ฒญ์— ๋Œ€ํ•œ ๋ถ€ํ•˜๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒค๋“œ๊ฐ€ ์žˆ๋Š” ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋ถ„์‚ฐํ•  ์ˆ˜ ์žˆ์Œ.
์Šคํ‚ค๋งˆ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— DB ํ™•์žฅ์— ์žˆ์–ด์„œ๋„ ์ ์šฉ์ด ์‰ฌ์›€.

๐Ÿš€Replication

์—ฌ๋Ÿฌ ๊ฐœ์˜ DB๋ฅผ ์ˆ˜์ง์ ์ธ ๊ตฌ์กฐ(Master - Slave)๋กœ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ์‹

  • Master Node๋Š” ์“ฐ๊ธฐ ์ž‘์—…๋งŒ์„ ์ฒ˜๋ฆฌ, Slave Node๋Š” ์ฝ๊ธฐ ์ž‘์—…๋งŒ์„ ์ฒ˜๋ฆฌ.
  • ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”
  • ์žฅ์ 
    • DB ์š”์ฒญ์˜ ๋Œ€๋ถ€๋ถ„์ด Read์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ ์ƒ ์ด์ 
    • ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์šด์˜๋˜์–ด ์ง€์—ฐ ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์—†์Œ
  • ๋‹จ์ 
    • ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์•„ ์ผ๊ด€์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Master ๋…ธ๋“œ๊ฐ€ ๋‹ค์šด๋˜๋ฉด ๋ณต๊ตฌ ๋ฐ ๋Œ€์ฒ˜๊ฐ€ ๊นŒ๋‹ค๋กœ์›€

๐Ÿ’ปMySQL์˜ Replication

mysql-replication

  1. Master ๋…ธ๋“œ์— ์“ฐ๊ธฐ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰๋จ
  2. Master ๋…ธ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ํŒŒ์ผ์— ๊ธฐ๋ก(BIN LOG)
  3. Slave ๋…ธ๋“œ์˜ IO Thread๋Š” Master ๋…ธ๋“œ์˜ ๋กœ๊ทธ ํŒŒ์ผ(BIN LOG)๋ฅผ ํŒŒ์ผ(Replay Log)์— ๋ณต์‚ฌํ•œ๋‹ค.
  4. Slave ๋…ธ๋“œ์˜ SQL Thread๋Š” ํŒŒ์ผ(Replay Log)๋ฅผ ํ•œ ์ค„์”ฉ ์ฝ์œผ๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

๐Ÿš€Clustering

์—ฌ๋Ÿฌ ๊ฐœ์˜ DB๋ฅผ ์ˆ˜ํ‰์ ์ธ ๊ตฌ์กฐ๋กœ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ์‹

  • ํด๋Ÿฌ์Šคํ„ฐ๋ง์€ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ด Single point of failure์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” Fail Over ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋จ
  • ๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”

๐Ÿš€4.2. ์ฐธ์กฐ