Database Replication Architecture

DB Replication ๊ตฌ์กฐ

Source(์›๋ณธ) -- Replication(๋ณต์ œ) ๊ตฌ์กฐ์ด๋‹ค.

์›๋ณธ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋ฉด ๋ณต์ œ ์„œ๋ฒ„์—๋„ ๋™์ผํ•˜๊ฒŒ ๋ฐ˜์˜๋œ๋‹ค.

  1. ์›๋ณธ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๋ฉด ๋ณต์ œ ์„œ๋ฒ„๋ฅผ ์›๋ณธ ์„œ๋ฒ„๋กœ ์Šน๊ฒฉ์‹œ์ผœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  2. ์›๋ณธ ์„œ๋ฒ„๋ฅผ Write DB๋กœ, ๋ณต์ œ ์„œ๋ฒ„๋ฅผ Read DB๋กœ ์‚ฌ์šฉํ•ด ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

MySQL ์„œ๋ฒ„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ(์‚ฝ์ž…/์‚ญ์ œ, ๊ณ„์ • ๊ถŒํ•œ ๋ณ€๊ฒฝ๊ณผ ๊ฐ™์€)๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ๊ธฐ๋ก๋œ๋‹ค.

  • Binary Log : ์ด๋ฒคํŠธ(๋ณ€๊ฒฝ์‚ฌํ•ญ)์ด ๋กœ๊ทธํŒŒ์ผ์— ์ˆœ์ฐจ์ ์œผ๋กœ ๊ธฐ๋ก๋œ ๊ฒƒ

์›๋ณธ ์„œ๋ฒ„์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ๋ฅผ ๋ณต์ œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ณ , ๋ณต์ œ ์„œ๋ฒ„๋Š” Relay Log๋ผ๋Š” ๋กœ์ปฌ ๋””์Šคํฌ์— ์ €์žฅํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•œ๋‹ค.

๋ณต์ œ ํ† ํด๋กœ์ง€

  1. ํŠธ๋žœ์žญ์…˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  Binary log์— ๊ธฐ๋กํ•œ๋‹ค.

  2. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ๋คํ”„ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ ์ด๋ฒคํŠธ์— Lock์„ ์„ค์ •ํ•˜๊ณ  ์ฝ์€ ๋‹ค์Œ, ๋ณต์ œ ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค.

  3. Replicaiton I/O ์Šค๋ ˆ๋“œ๋Š” ๋คํ”„ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณด๋‚ด์ค€ ์ด๋ฒคํŠธ๋ฅผ ์ž์‹ ์˜ ๋กœ์ปฌ ํŒŒ์ผ์ธ Relay log์— ์ €์žฅํ•œ๋‹ค.

  • ์•„์ง ๋ฐ์ดํ„ฐ๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š์€ ์ƒํƒœ์ด๋‹ค. show replica status ๋ช…๋ น์œผ๋กœ ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  1. Replication SQL ์Šค๋ ˆ๋“œ๊ฐ€ Binary log๋ฅผ DB์— ๋ฐ˜์˜ํ•œ๋‹ค. (I/O ์Šค๋ ˆ๋“œ๋ž‘์€ ๋ณ„๊ฐœ๋ผ๊ณ  ํ•œ๋‹ค.)

์ •๋ฆฌํ•˜๋ฉด ์ด๋ ‡๋‹ค.

Master(Source) ์„œ๋ฒ„

  • ๋ ˆํ”Œ๋ฆฌ์นด ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ ๋  ๋•Œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ๋คํ”„ ์Šค๋ ˆ๋“œ(Binary Log Dump Thread)๋ฅผ ์ƒ์„ฑํ•ด, ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ๋‚ด์šฉ์„ ๋ ˆํ”Œ๋ฆฌ์นด ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค.

Slave(Replica) ์„œ๋ฒ„

  • ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜(Replication) I/O ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์„œ Master ์„œ๋ฒ„์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ๋คํ”„ ์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€์ ธ์™€์„œ Relay log์— ์ €์žฅํ•œ๋‹ค.

  • ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜ I/O ์Šค๋ ˆ๋“œ๊ฐ€ ์ž‘์„ฑํ•œ Relay log ํŒŒ์ผ์˜ ์ด๋ฒคํŠธ๋ฅผ ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜(Replication) SQL ์Šค๋ ˆ๋“œ๊ฐ€ ์ฝ๊ณ  ์‹คํ–‰(์ €์žฅ)ํ•œ๋‹ค.

์‹๋ณ„ ๋ฐฉ๋ฒ• (๋ณต์ œ ๋ฐฉ๋ฒ•)

๋ ˆํ”Œ๋ฆฌ์นด ์„œ๋ฒ„๋Š” ์›๋ณธ ์„œ๋ฒ„์˜ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ๋ฅผ ์–ด๋–ป๊ฒŒ ์‹๋ณ„ํ• ๊นŒ?

1. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ํŒŒ์ผ ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ณต์ œ (Binary Log File Position Based)

์›๋ณธ ์„œ๋ฒ„์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ํŒŒ์ผ๋ช…๊ณผ offset(position)์„ ๊ฐ€์ง€๊ณ  ์‹๋ณ„ํ•œ๋‹ค.

๊ทธ๋ฆผ์—์„œ๋Š” offset ์ •๋ณด๊ฐ€ ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ ํŒŒ์ผ์—๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค.

๋‹จ์ ์œผ๋กœ๋Š” ๋ ˆํ”Œ๋ฆฌ์นด๊ฐ€ ๋งˆ์Šคํ„ฐ๋กœ ์Šน๊ฒฉ๋˜๋ฉด ๋‚˜๋จธ์ง€ ๋ ˆํ”Œ๋ฆฌ์นด๋Š” ๋ฐ”๋€ ๋งˆ์Šคํ„ฐ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์˜คํ”„์…‹์„ ๋‹ค์‹œ ์ฐพ์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต๊ตฌ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ , ์ค‘๊ฐ„์— ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๊ธฐ๋ผ๋„ ํ•˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณต์ œํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ๊ธ€๋กœ๋ฒŒ ํŠธ๋žœ์žญ์…˜ ์•„์ด๋”” ๊ธฐ๋ฐ˜ ๋ณต์ œ (Global Transaction ID = GTID)

MySQL 5.6๋ถ€ํ„ฐ๋Š” GTID๋ฅผ ๊ธฐ๋ณธ ๋ณต์ œ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

  • GTID = source_id:transaction_id๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

1. ๋งˆ์Šคํ„ฐ์—์„œ ๊ฐ ํŠธ๋žœ์žญ์…˜์— ๊ณ ์œ ํ•œ GTID ํ• ๋‹น

2. ๋งˆ์Šคํ„ฐ๋Š” ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ์™€ ํ•จ๊ป˜ GTID๋ฅผ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ๊ธฐ๋ก

3. ์Šฌ๋ ˆ์ด๋ธŒ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์—์„œ ํŠธ๋žœ์žญ์…˜๊ณผ GTID๋ฅผ ์ฝ๋Š”๋‹ค.

4. ์Šฌ๋ ˆ์ด๋ธŒ๋Š” GTID๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฏธ ์ ์šฉ๋œ ํŠธ๋žœ์žญ์…˜์€ ๋ฌด์‹œํ•˜๊ณ  ์•„์ง ์ ์šฉ๋˜์ง€ ์•Š์€ ํŠธ๋žœ์žญ์…˜์—๋งŒ ์ ์šฉํ•œ๋‹ค.

triangle-exclamation

๋กœ๊ทธ ํŒŒ์ผ์—์„œ๋Š” offset ์ถ”์ ์ด ํ•„์š”ํ–ˆ์ง€๋งŒ, GTID๋Š” ๋™์ผํ•œ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋žœ์žญ์…˜ ID๋งŒ ์ฝ์œผ๋ฉด๋œ๋‹ค.

GTID ๋ณต์ œ์˜ ์ด์ ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ์ž๋™ ์žฅ์•  ์กฐ์น˜ (Failover) ๊ฐœ์„ 

  • ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋‹ค๋ฅธ ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ์ƒˆ๋กœ์šด ๋งˆ์Šคํ„ฐ๋กœ ์Šน๊ฒฉํ•˜๋Š” ๊ณผ์ •์ด ๋” ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ •์ 

  • GTID๋ฅผ ํ†ตํ•ด ๊ฐ ํŠธ๋žœ์žญ์…˜์˜ ์‹คํ–‰ ์—ฌ๋ถ€๋ฅผ ์ถ”์  ๊ฐ€๋Šฅ

  1. ๋ณต์ œ ํ† ํด๋กœ์ง€ ๋ณ€๊ฒฝ ์šฉ์ด์„ฑ

  • binary log ํŒŒ์ผ ์œ„์น˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ฐพ์„ ํ•„์š”๊ฐ€ ์—†์Œ

  1. ํŠธ๋žœ์žญ์…˜ ์ผ๊ด€์„ฑ ๋ณด์žฅ

  • ๊ฐ ํŠธ๋žœ์žญ์…˜์— ๊ณ ์œ ํ•œ ID๊ฐ€ ๋ถ€์—ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต ์‹คํ–‰ ๋ฐฉ์ง€ ๊ฐ€๋Šฅ

  • ๋ˆ„๋ฝ๋œ ํŠธ๋žœ์žญ์…˜ ์‹๋ณ„์— ์šฉ์ด

๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ๋Š” ์–ด๋–ป๊ฒŒ ์ €์žฅ๋ ๊นŒ? (Binary Log Format)

  1. Row ๋ฐฉ์‹ --> ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ

๋งค์šฐ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ๊ทธ์— ๊ธฐ๋ก๋˜๋ฉด์„œ ๊ณผ๋ถ€ํ•˜๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

  1. Statement ๋ฐฉ์‹ --> SQL๋ฌธ์„ ์ €์žฅ

์‹คํ–‰ํ•œ SQL๋ฌธ์„ ๊ทธ๋Œ€๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ์ €์žฅํ•˜๋Š” ํ˜•์‹์ด๋‹ค. ๋‹จ์ˆœ ์ฟผ๋ฆฌ๋งŒ ๊ธฐ๋ก๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ ์€ ์šฉ๋Ÿ‰์˜ ๋กœ๊ทธํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋น„ํ™•์ • ์ฟผ๋ฆฌ์ผ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด Repeatable Read ์ด์ƒ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋น„ํ™•์ • ์ฟผ๋ฆฌ : ์‹คํ–‰๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” SQL

  • ๋งˆ์Šคํ„ฐ์—์„œ timestamp๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋กœ๊ทธ๋ฅผ ๋‚จ๊ฒผ๋Š”๋ฐ, ์Šฌ๋ ˆ์ด๋ธŒ์—์„œ๋„ ์ด๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด timestamp๋ฅผ ์‹คํ–‰ํ•œ๋‹ค๋ฉด ๋‘ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ ธ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

  1. Mixed ๋ฐฉ์‹ --> Statement + Row

ํ‰์†Œ์—๋Š” Statement ํฌ๋งท์œผ๋กœ ๊ธฐ๋กํ•˜๋‹ค๊ฐ€ Statement ํฌ๋งท์œผ๋กœ ๋ณต์ œํ–ˆ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ฟผ๋ฆฌ๋Š” Row ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ธฐ๋กํ•ด์ค€๋‹ค.

๋ณต์ œ ๋™๊ธฐํ™” ๋ฐฉ์‹

1. ๋ณต์ œ ๋น„๋™๊ธฐ ๋ฐฉ์‹

mysql์˜ ๊ธฐ๋ณธ ๋ณต์ œ ๋ฐฉ์‹์ด๋‹ค.

๋™๊ธฐ ๋ฐฉ์‹์—์„œ๋Š” ๋คํ”„ ์Šค๋ ˆ๋“œ์—์„œ ์ž‘์—…์ด ์‹œ์ž‘๋˜๋ฉด ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํŠธ๋žœ์žญ์…˜ ์Šค๋ ˆ๋“œ๋Š” ๋Œ€๊ธฐํ•˜๊ฒŒ ๋œ๋‹ค. ๋˜, ์†Œ์Šค ์„œ๋ฒ„๊ฐ€ ๋ณต์ œ ์„œ๋ฒ„์˜ ๋ณ€๊ฒฝ์„ ํ™•์ธํ•œ๋‹ค.

์ฆ‰, ๋น„๋™๊ธฐ ๋ฐฉ์‹์€ ํŠธ๋žœ์žญ์…˜ ์Šค๋ ˆ๋“œ๋Š” ๋คํ”„ ์Šค๋ ˆ๋“œ์˜ ์ž‘์—… ์™„๋ฃŒ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋Š”๊ฒƒ์ด๋‹ค.

์ด์ฒ˜๋Ÿผ ๋™๊ธฐ ๋ฐฉ์‹์€ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ๋น„๋™๊ธฐ ๋ฐฉ์‹์€ ๋งˆ์Šคํ„ฐ ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ ˆํ”Œ๋ฆฌ์นด ์„œ๋ฒ„์— ๋ฐ˜์˜๋˜์ง€ ์•Š์•„ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ex) ๋งˆ์Šคํ„ฐ ์„œ๋ฒ„ ์žฅ์•  ๋ฐœ์ƒ ์ „, ํŠธ๋žœ์žญ์…˜์€ ์ปค๋ฐ‹ ๋˜์—ˆ์ง€๋งŒ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ๊ธฐ๋ก๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ

2. ๋ณต์ œ ๋ฐ˜๋™๊ธฐ ๋ฐฉ์‹

1. ํŠธ๋žœ์žญ์…˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ปค๋ฐ‹ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ๋ณ€๊ฒฝ ๊ธฐ๋ก์„ ์ž‘์„ฑํ•œ๋‹ค.

2. ๋คํ”„ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณต์ œ ์„œ๋ฒ„ ์Šค๋ ˆ๋“œ์— ๋ฆด๋ ˆ์ด ๋กœ๊ทธ๋ฅผ ์ „์†กํ•œ๋‹ค.

3. ๋ณต์ œ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ wrtieํ•œ๋‹ค.

4. ๋ณต์ œ ์„œ๋ฒ„๋Š” ์›๋ณธ ์„œ๋ฒ„์— write ํ–ˆ๋‹ค๋Š” ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.

5. ํŠธ๋žœ์žญ์…˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ด๋ฅผ ํ™•์ธํ•˜๊ณ  ์ปค๋ฐ‹์„ ํ™•์ •ํ•˜๋ฉด์„œ ์›๋ณธ ์Šคํ† ๋ฆฌ์ง€์— wirte ํ•œ๋‹ค.

์ด๋Ÿฐ ๊ณผ์ •์ด๋ผ๋ฉด, ๋ณต์ œ ์„œ๋ฒ„์—์„œ wrtieํ•˜๊ณ  ์ค‘๊ฐ„์— ํŠธ๋žœ์žญ์…˜์ด rollback ๋œ๋‹ค๋ฉด ๋ณต์ œ ์„œ๋ฒ„๋„ ๊ฐ™์ด rollback ๋˜๋Š”๊ฒƒ ๊ฐ™๋‹ค.

Summary

๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๋ฐ ๋ฐฑ์—… ๋“ฑ์„ ์œ„ํ•œ master/slave ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•˜๋Š” Scale-Out ์†”๋ฃจ์…˜์ด๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ง์ด๋ผ๊ณ ๋„ ํ•˜๋Š” ๋™๊ธฐ ๋ณต์ œ ๋ฐฉ์‹์€ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋Œ€์‹ , ๊ฐ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค๊ณผ ๋™๊ธฐํ™” ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ƒ ์ด์Šˆ๊ฐ€ ์žˆ๋‹ค. (ํด๋Ÿฌ์Šคํ„ฐ๋ง์—๋Š” ๋…ผ๋ฆฌ์  ๋ณต์ œ ๋ฐฉ์‹, ๋ฌผ๋ฆฌ์  ์Šคํ† ๋ผ์ง€ ๊ณต์œ  ๋ฐฉ์‹ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์ด ์กด์žฌ)

๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ๋Š” ๊ฒฐ๊ตญ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•จ์ธ๋ฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ๋™๊ธฐ ๋ณต์ œ ๋ฐฉ์‹์ด ์•„๋‹Œ ๋น„๋™๊ธฐ ๋ณต์ œ ๋ฐฉ์‹์ด๋‚˜ ๋ฐ˜๋™๊ธฐ(Semi-Sync) ๋ณต์ œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„ ์š”์ฒญ์ด read ์ž‘์—…์ธ ํŠน์ง•์ด๋ฉด master ๋…ธ๋“œ๋Š” write ์ž‘์—…์œผ๋กœ, ๋ณต์ œ(slave)๋…ธ๋“œ๋“ค์€ read ์ž‘์—…์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜์—ฌ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•œ๋‹ค.

Last updated