HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๋‹ค์Œ HighLoad++ ์ปจํผ๋Ÿฐ์Šค๋Š” 6๋…„ 7์›” 2020์ผ๊ณผ XNUMX์ผ์— ์ƒํŠธํŽ˜ํ…Œ๋ฅด๋ถ€๋ฅดํฌ์—์„œ ๊ฐœ์ตœ๋ฉ๋‹ˆ๋‹ค.
์„ธ๋ถ€์ •๋ณด ๋ฐ ํ‹ฐ์ผ“ ๋งํฌ. HighLoad++ ์‹œ๋ฒ ๋ฆฌ์•„ 2019. "ํฌ๋ผ์Šค๋…ธ์•ผ๋ฅด์Šคํฌ" ํ™€. 25์›” 12์ผ 00:XNUMX. ๋…ผ๋ฌธ๊ณผ ์ œ์ถœ.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์‹ค์ œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ƒ์šฉ ์ œํ’ˆ์— ์ค‘์š”ํ•œ ์ธก๋ฉด์ด ๊ณ ๋ ค๋˜์ง€ ์•Š๋Š” ์ด๋ก ๊ณผ ์ถฉ๋Œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์—ฐ์—์„œ๋Š” ์ƒ์šฉ ์ œํ’ˆ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ•™์ˆ  ์—ฐ๊ตฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ๊ณผ ์ผ๊ด€์„ฑ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์„ ํƒํ•˜๊ณ  ๊ฒฐํ•ฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ฒญ์ทจ์ž๋Š” ๋…ผ๋ฆฌ์  ์‹œ๊ณ„, ์ข…์†์„ฑ ์ถ”์ , ์‹œ์Šคํ…œ ๋ณด์•ˆ, ์‹œ๊ณ„ ๋™๊ธฐํ™”์— ๋Œ€ํ•œ ๊ธฐ์กด ์ด๋ก ์  ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ MongoDB๊ฐ€ ํŠน์ • ์†”๋ฃจ์…˜์„ ์„ ํƒํ•œ ์ด์œ ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฏธํ•˜์ผ ํŠœ๋ ˆ๋„คํ”„(์ดํ•˜ MT): โ€“ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ MongoDB์—์„œ ์ž‘์—…ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๊ทธ๋ฃน์—์„œ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•ฝ XNUMX๋…„ ์ „์— ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๊ทธ ๊ณผ์ •์—์„œ ์ด ๊ธฐ๋Šฅ์€ ๊ฝค ์ž˜ ์—ฐ๊ตฌ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ํ•™๋ฌธ์  ์—ฐ๊ตฌ์— ์ต์ˆ™ํ•ด์ ธ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ๊ตฌ์ฒด์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ํ”„๋กœ๋•์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•„์š”ํ•œ ๋‚ด์šฉ์— ๋งž๋Š” ๊ธฐ์‚ฌ๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ํ•™์ˆ  ์—ฐ๊ตฌ์˜ ์†Œ๋น„์ž๋กœ์„œ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋กœ๋ถ€ํ„ฐ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ค€๋น„ํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŽธ๋ฆฌํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์„ฑํ’ˆ์œผ๋กœ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ธ๊ณผ์  ์ผ๊ด€์„ฑ. ๊ฐœ๋…์„ ์ •์˜ํ•ด๋ณด์ž

์šฐ์„ , ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์ด ๋ฌด์—‡์ธ์ง€ ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด๋กœ ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ช…์˜ ์บ๋ฆญํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค - Leonard์™€ Penny(TV ์‹œ๋ฆฌ์ฆˆ "The Big Bang Theory"):

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

Penny๊ฐ€ ์œ ๋Ÿฝ์— ์žˆ๊ณ  Leonard๊ฐ€ ๊ทธ๋…€์—๊ฒŒ ๊นœ์ง ํŒŒํ‹ฐ๋ฅผ ์—ด๊ณ  ์‹ถ์–ดํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Š” ๊ทธ๋…€๋ฅผ ์นœ๊ตฌ ๋ชฉ๋ก์—์„œ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ์นœ๊ตฌ๋“ค์—๊ฒŒ ํ”ผ๋“œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ๊ฒƒ์„ ์ƒ๊ฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. "ํŽ˜๋‹ˆ๋ฅผ ํ–‰๋ณตํ•˜๊ฒŒ ํ•ฉ์‹œ๋‹ค!" (๊ทธ๋…€๋Š” ์œ ๋Ÿฝ์— ์žˆ๋Š”๋ฐ, ์ž๋Š” ๋™์•ˆ์—๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์„ ๋ณด์ง€ ๋ชปํ•˜๊ณ  ๊ฑฐ๊ธฐ์— ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณผ ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค). ๊ฒฐ๊ตญ ๊ทธ๋…€๋Š” ์ด ๊ฒŒ์‹œ๋ฌผ์„ ์‚ญ์ œํ•˜๊ณ  ํ”ผ๋“œ์—์„œ ์‚ญ์ œํ•œ ํ›„ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ณต์›ํ•˜์—ฌ ์•„๋ฌด๊ฒƒ๋„ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ•˜๊ณ  ์Šค์บ”๋“ค์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋ชจ๋‘ ํ›Œ๋ฅญํ•˜์ง€๋งŒ ์‹œ์Šคํ…œ์ด ๋ถ„์‚ฐ๋˜์–ด ์žˆ๊ณ  ์ƒํ™ฉ์ด ์•ฝ๊ฐ„ ์ž˜๋ชป๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ๊ฑด์ด ์›์ธ๊ณผ ๊ฒฐ๊ณผ๋กœ ๊ด€๋ จ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ๊ฒŒ์‹œ๋ฌผ์ด ํ‘œ์‹œ๋œ ํ›„ ํŽ˜๋‹ˆ์˜ ์ ‘๊ทผ ์ œํ•œ์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ(์ด ๊ฒฝ์šฐ)์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ด๊ฒƒ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋งค์šฐ ์‚ฌ์†Œํ•œ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ์‚ฌ๋žŒ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ๋กœ ๋„˜์–ด ๊ฐ‘์‹œ๋‹ค.

์ผ๊ด€์„ฑ ๋ชจ๋ธ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๊ด€์„ฑ ๋ชจ๋ธ์€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์ œ๊ณตํ•˜๋Š” ๋ณด์žฅ ์ค‘ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

์›์น™์ ์œผ๋กœ ๋ชจ๋“  ์ผ๊ด€์„ฑ ๋ชจ๋ธ์€ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด ์˜ˆ๋ฅผ ๋“ค์–ด ๋…ธํŠธ๋ถ์˜ ํ•œ ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์‹œ์Šคํ…œ๊ณผ ์–ผ๋งˆ๋‚˜ ์œ ์‚ฌํ•œ์ง€์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋œ ์ˆ˜์ฒœ ๊ฐœ์˜ "๋…ธ๋“œ"์—์„œ ์‹คํ–‰๋˜๋Š” ์‹œ์Šคํ…œ์ด ์›์น™์ ์œผ๋กœ ๋ชจ๋“  ์†์„ฑ์ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ๋…ธํŠธ๋ถ๊ณผ ์–ผ๋งˆ๋‚˜ ์œ ์‚ฌํ•œ์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ผ๊ด€์„ฑ ๋ชจ๋ธ์€ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด์ „์— ๋™์ผํ•œ ์ˆ˜์ง ํ™•์žฅ์œผ๋กœ ์กด์žฌํ•˜๊ณ  ์ž‘๋™ํ–ˆ๋˜ ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ฒ„ํผ ์บ์‹œ๊ฐ€ ํ•˜๋‚˜ ์žˆ์—ˆ๊ณ  ํ•ญ์ƒ ์—ฌ๊ธฐ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ•ํ•œ ๋ชจ๋ธ

์‹ค์ œ๋กœ ์ฒซ ๋ฒˆ์งธ ๋ชจ๋ธ์€ Strong(๋˜๋Š” ์ข…์ข… ์ƒ์Šน ๋Šฅ๋ ฅ ๋ผ์ธ์ด๋ผ๊ณ  ๋ถ€๋ฆ„)์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ์Œ์ด ํ™•์ธ๋˜๋ฉด ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•˜๋Š” ์ผ๊ด€์„ฑ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ๋ชจ๋“  ์ด๋ฒคํŠธ์˜ ์ „์—ญ ์ˆœ์„œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ์ผ๊ด€์„ฑ ์†์„ฑ์ด๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งค์šฐ ๋น„์Œ‰๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งค์šฐ ์ž˜ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ์ด ๋งค์šฐ ๋น„์‹ธ๊ณ  ๋Š๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์ƒ์Šน ๋Šฅ๋ ฅ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Spanner์—์„œ ์ง€์›๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ๊ฐ•๋ ฅํ•œ ์†์„ฑ์ธ ์™ธ๋ถ€ ์ผ๊ด€์„ฑ(External Consistency)์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ์กฐ๊ธˆ ๋‚˜์ค‘์— ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ธ๊ณผ

๋‹ค์Œ์€ ์ธ๊ณผ๊ด€๊ณ„(Causal)์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ œ๊ฐ€ ๋งํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Strong๊ณผ Causal ์‚ฌ์ด์—๋Š” ๋‚ด๊ฐ€ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์„ ํ•˜์œ„ ์ˆ˜์ค€์ด ๋ช‡ ๊ฐ€์ง€ ๋” ์žˆ์ง€๋งŒ, ๋ชจ๋‘ Causal๋กœ ๊ท€๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  ๋ชจ๋ธ ์ค‘์—์„œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ๋„คํŠธ์›Œํฌ๋‚˜ ํŒŒํ‹ฐ์…˜์ด ์žˆ์„ ๋•Œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์ผ๊ด€์„ฑ์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

์ธ๊ณผ๊ด€๊ณ„๋Š” ์‹ค์ œ๋กœ ์‚ฌ๊ฑด์ด ์›์ธ๊ณผ ๊ฒฐ๊ณผ์˜ ๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ์ž์ฃผ ๊ทธ๋“ค์€ ๊ณ ๊ฐ์˜ ๊ด€์ ์—์„œ ๊ท€ํ•˜์˜ ๊ถŒ๋ฆฌ๋ฅผ ์ฝ๋Š” ๊ฒƒ์œผ๋กœ ์ธ์‹๋ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ๋ถ€ ๊ฐ’์„ ๊ด€์ฐฐํ•œ ๊ฒฝ์šฐ ๊ณผ๊ฑฐ์˜ ๊ฐ’์„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ด๋ฏธ ์ ‘๋‘์‚ฌ ์ˆ˜์น˜๋ฅผ ๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ชจ๋‘ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ๊ท€๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
์ผ๊ด€์„ฑ ๋ชจ๋ธ๋กœ์„œ์˜ ์ธ๊ณผ ๊ด€๊ณ„๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์˜ ์ด๋ฒคํŠธ๊ฐ€ ๋™์ผํ•œ ์ˆœ์„œ๋กœ ๊ด€์ฐฐ๋˜๋Š” ์„œ๋ฒ„ ์ด๋ฒคํŠธ์˜ ๋ถ€๋ถ„ ์ˆœ์„œ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” Leonard์™€ Penny๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ข…์˜

์„ธ ๋ฒˆ์งธ ๋ชจ๋ธ์€ ์ตœ์ข… ์ผ๊ด€์„ฑ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ ˆ๋Œ€์ ์œผ๋กœ ๋ชจ๋“  ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ ์ „ํ˜€ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ์ตœ์†Œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์— ์ผ๋ถ€ ๋ณ€๊ฒฝ์ด ์žˆ์œผ๋ฉด ์–ด๋Š ์‹œ์ ์—์„œ๋Š” ์ผ๊ด€์„ฑ์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ์ˆœ๊ฐ„์— ๊ทธ๋…€๋Š” ์•„๋ฌด ๋ง๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ทธ๋…€๋Š” ์™ธ๋ถ€ ์ผ๊ด€์„ฑ์œผ๋กœ ๋ณ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์™„์ „ํžˆ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๊ฒƒ์€ ๋งค์šฐ ์ธ๊ธฐ ์žˆ๊ณ  ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ์ตœ์ข… ์ผ๊ด€์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๋น„๊ต ์˜ˆ๋ฅผ ์ œ์‹œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์ด ํ™”์‚ดํ‘œ๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋‚˜์š”?

  • ์ง€์—ฐ ์‹œ๊ฐ„. ์ผ๊ด€์„ฑ ๊ฐ•๋„๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋ถ„๋ช…ํ•œ ์ด์œ  ๋•Œ๋ฌธ์— ๋” ์ปค์ง‘๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์™€ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์žˆ๋‹ค๋Š” ํ™•์ธ์„ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์ข… ์ผ๊ด€์„ฑ์€ ๊ฐ€์žฅ ๋น ๋ฅธ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์›์น™์ ์œผ๋กœ ์ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ปค๋ฐ‹ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์›์น™์ ์œผ๋กœ ์ด๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ์œ ํšจ์„ฑ. ์ด๊ฒƒ์„ ๋„คํŠธ์›Œํฌ ์ค‘๋‹จ, ํŒŒํ‹ฐ์…˜ ๋˜๋Š” ์ผ์ข…์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ๋•Œ ์‹œ์Šคํ…œ์ด ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์œผ๋กœ ์ดํ•ดํ•œ๋‹ค๋ฉด ์ผ๊ด€์„ฑ ๋ชจ๋ธ์ด ๊ฐ์†Œํ•จ์— ๋”ฐ๋ผ ๋‚ด๊ฒฐํ•จ์„ฑ์€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ•˜๋‚˜์˜ ํ˜ธ์ŠคํŠธ๊ฐ€ ๋™์‹œ์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ตœ์ข… ์ผ๊ด€์„ฑ์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ „ํ˜€ ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ฌด์—‡์ด๋“  ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ƒ. ๋™์‹œ์— ์ด์ƒ ํ˜„์ƒ์˜ ์ˆ˜๋„ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Strong Consistency์—์„œ๋Š” ๊ฑฐ์˜ ์กด์žฌํ•˜์ง€ ์•Š์•„์•ผ ํ•˜์ง€๋งŒ, Eventual Consistency์—์„œ๋Š” ๋ฌด์—‡์ด๋“  ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์‚ฌ๋žŒ๋“ค์ด ์ตœ์ข… ์ผ๊ด€์„ฑ์„ ์„ ํƒํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋Œ€๋‹ต์€ ์ตœ์ข… ์ผ๊ด€์„ฑ ๋ชจ๋ธ์ด ์ ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ์˜ˆ๋ฅผ ๋“ค์–ด ์งง์€ ์‹œ๊ฐ„ ๋‚ด์— ์˜ˆ์™ธ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งˆ๋ฒ•์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์–ด๋Š ์ •๋„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ์ผ๊ด€์„ฑ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ข…์ข… ์ด์ƒ ํ˜„์ƒ์˜ ์ˆ˜๊ฐ€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

CAP ์ •๋ฆฌ

์ผ๊ด€์„ฑ, ๊ฐ€์šฉ์„ฑ์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋ณด๋ฉด ๋ฌด์—‡์ด ๋– ์˜ค๋ฅด๋‚˜์š”? ๋งž์Šต๋‹ˆ๋‹ค - CAP ์ •๋ฆฌ! ์ด์ œ ์ €๋Š” ๊ทธ ์‹ ํ™”๋ฅผ ๋ถˆ์‹์‹œํ‚ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค... ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•œ ๊ธฐ์‚ฌ, ํ›Œ๋ฅญํ•œ ์ฑ…์„ ์“ด ์‚ฌ๋žŒ์€ Martin Kleppmann์ž…๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

CAP ์ •๋ฆฌ๋Š” ์ผ๊ด€์„ฑ, ๊ฐ€์šฉ์„ฑ, ํŒŒํ‹ฐ์…˜ ์ค‘ ๋‘ ๊ฐ€์ง€๋ฅผ ์„ ํƒํ•˜๋ฉด ์„ธ ๊ฐ€์ง€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์—†๋‹ค๋Š” 2000๋…„๋Œ€์— ๊ณต์‹ํ™”๋œ ์›์น™์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํŠน์ •ํ•œ ์›์น™์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ช‡ ๋…„ ํ›„ ๊ธธ๋ฒ„ํŠธ์™€ ๋ฆฐ์น˜์— ์˜ํ•ด ์ •๋ฆฌ๋กœ ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๊ฒƒ์ด ์ง„์–ธ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ CA, CP, AP ๋“ฑ์œผ๋กœ ๋‚˜๋‰˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ •๋ฆฌ๋Š” ์‹ค์ œ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค... ์ฒซ์งธ, ๊ฐ€์šฉ์„ฑ์€ 0์—์„œ ์ˆ˜๋ฐฑ๊นŒ์ง€์˜ ์—ฐ์† ๊ฐ’์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(100 - ์‹œ์Šคํ…œ์ด "์ฃฝ์Œ", XNUMX - ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•จ. ์šฐ๋ฆฌ๋Š” ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜๋Š” ๋ฐ ์ต์ˆ™ํ•จ) , ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ์‹คํ–‰์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜์„ ๋ณด์žฅํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์†์„ฑ์ž…๋‹ˆ๋‹ค.

์‘๋‹ต ์‹œ๊ฐ„์— ๋Œ€ํ•œ ๋‹จ์–ด๋Š” ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค! 100๋…„ ํ›„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” CAP ์ •๋ฆฌ์˜ ์ผ๋ถ€์ธ ๋งค์šฐ ๋†€๋ผ์šด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.
๋‘˜์งธ, ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋™์ผํ•œ ํ‚ค ๊ฐ’์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ •๋ฆฌ๊ฐ€ ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋ธ์ด ์ตœ์ข… ์ผ๊ด€์„ฑ, ๊ฐ•๋ ฅํ•œ ์ผ๊ด€์„ฑ(์•„๋งˆ๋„)์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒŒ ๋‹ค ๋ญ์ฃ ? ๋”์šฑ์ด, ์ฆ๋ช…๋œ ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ํ˜•ํƒœ์˜ CAP ์ •๋ฆฌ๋Š” ์‹ค์งˆ์ ์œผ๋กœ ์ ์šฉ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ฑฐ์˜ โ€‹โ€‹์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ก ์  ํ˜•ํƒœ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ๋“  ๋ชจ๋“  ๊ฒƒ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ง๊ด€์ ์œผ๋กœ๋Š” ์ •ํ™•ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž…์ฆ๋˜์ง€ ์•Š์€ ํŠน์ • ์›๋ฆฌ๊ฐ€ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

์ธ๊ณผ์  ์ผ๊ด€์„ฑ์ด ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ชจ๋ธ์ด๋‹ค

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

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

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

MongoDB ๋‚ด๋ถ€ ์ฃผ๋ฐฉ

์ ์‹ฌ์ด๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๊ณ  ๋ถ€์—Œ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์ฒ˜์Œ ๋“ฃ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์‹œ์Šคํ…œ ๋ชจ๋ธ, ์ฆ‰ MongoDB๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

MongoDB(์ดํ•˜ โ€œMongoDBโ€)๋Š” ์ˆ˜ํ‰์  ํ™•์žฅ, ์ฆ‰ ์ƒค๋”ฉ(Sharding)์„ ์ง€์›ํ•˜๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๊ฐ ์ƒค๋“œ ๋‚ด์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ฑ, ์ฆ‰ ๋ณต์ œ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

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

ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋ฐฐํฌํ•˜๋Š” ์ฟผ๋ฆฌ ๋ผ์šฐํ„ฐ๋Š” ์ž‘๋™ํ•˜๋Š” ์ผ๋ถ€ ํด๋ผ์ด์–ธํŠธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์— ์žˆ๊ณ  ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ์š”์ฒญ์„ ์˜ฌ๋ฐ”๋ฅธ ์ƒค๋“œ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ : MongoDB๋Š” ๋‹จ์ผ ๋งˆ์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๊ธฐ๋ณธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํฌํ•จ๋œ ํ‚ค๋ฅผ ์ง€์›ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์ค‘ ๋งˆ์Šคํ„ฐ ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฆด๋ฆฌ์Šค 4.2๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์ƒˆ๋กœ์šด ํฅ๋ฏธ๋กœ์šด ๊ฒƒ๋“ค์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ Lucene(๊ฒ€์ƒ‰), ์ฆ‰ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ java๋ฅผ Mongo์— ์ง์ ‘ ์‚ฝ์ž…ํ•˜์—ฌ Elastica์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Lucene์„ ํ†ตํ•œ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์€ ์ƒˆ๋กœ์šด ์ œํ’ˆ์ธ ์ฐจํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Atlas(Mongo์˜ ์ž์ฒด ํด๋ผ์šฐ๋“œ)์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ฌด๋ฃŒ ๋“ฑ๊ธ‰์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค - ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๋†€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ฐจํŠธ๋ฅผ ์ •๋ง ์ข‹์•„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๊ฐ€ ๋งค์šฐ ์ง๊ด€์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋ถ„ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ

๋‚˜๋Š” ์ด ์ฃผ์ œ์— ๊ด€ํ•ด Leslie Lampert๊ฐ€ ์ถœํŒํ•œ ์•ฝ 230๊ฐœ์˜ ๊ธฐ์‚ฌ๋ฅผ ์„ธ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด ๊ธฐ์–ต์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด ์ž๋ฃŒ์˜ ์ผ๋ถ€๋ฅผ ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ์ „๋‹ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๋ชจ๋“  ๊ฒƒ์€ 1970๋…„๋Œ€์— ์ž‘์„ฑ๋œ Leslie Lampert์˜ ๊ธฐ์‚ฌ์—์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด์‹œ๋‹ค์‹œํ”ผ, ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ์ผ๋ถ€ ์—ฐ๊ตฌ๊ฐ€ ์•„์ง ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์€ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ด€์‹ฌ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ œํ•œ

์–ด๋–ค ์ œํ•œ์‚ฌํ•ญ์ด ์žˆ๋‚˜์š”? ์ด๋Š” ์‹ค์ œ๋กœ ์ฃผ์š” ์š”์  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ƒ์‚ฐ ์‹œ์Šคํ…œ์ด ๋ถ€๊ณผํ•˜๋Š” ์ œํ•œ์€ ํ•™์ˆ  ๋…ผ๋ฌธ์— ์กด์žฌํ•˜๋Š” ์ œํ•œ๊ณผ ๋งค์šฐ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ข…์ข… ๋งค์šฐ ์ธ๊ณต์ ์ž…๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

  • ์ฒซ์งธ, ์ด๋ฏธ ๋งํ–ˆ๋“ฏ์ด "MongoDB"๋Š” ๋‹จ์ผ ๋งˆ์Šคํ„ฐ์ž…๋‹ˆ๋‹ค(์ด๊ฒƒ์€ ๋งค์šฐ ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค).
  • ์šฐ๋ฆฌ๋Š” ์‹œ์Šคํ…œ์ด ์•ฝ 10๊ฐœ์˜ ์ƒค๋“œ๋ฅผ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๊ฐ’์„ ๋ช…์‹œ์ ์œผ๋กœ ์ œํ•œํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ํด๋ผ์šฐ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋…ธํŠธ๋ถ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์—ฌ์ „ํžˆ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” Research๊ฐ€ ๊ฑฐ์˜ ๊ฐ€์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ๋Š” ์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ด๋“  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MongoDB๋Š” ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณ ๊ฐ์€ ๋งค์šฐ ์˜๋ฆฌํ•˜๊ณ  ํ™”๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ๊นจ๋œจ๋ฆฌ๊ณ  ์‹ถ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋น„์ž”ํ‹ด ํŽ˜์ผ๋Ÿฌ(Byzantine Feilors)๊ฐ€ ์œ ๋ž˜ํ–ˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ถ”์ธกํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฝ๊ณ„ ์™ธ๋ถ€์— ์žˆ๋Š” ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ์˜ ๊ฒฝ์šฐ ์ค‘์š”ํ•œ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๊ด€์ฐฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋˜ ๋‹ค๋ฅธ ์š”์ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ˜ ํ•™๋ฌธ์ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ด์ „ ๋ฒ„์ „๊ณผ ํ–ฅํ›„ ๋ฒ„์ „์˜ ํ˜ธํ™˜์„ฑ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋“œ๋ผ์ด๋ฒ„๋Š” ์ƒˆ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง€์›ํ•ด์•ผ ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด์ „ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๋ชจ๋“  ๊ฒƒ์—๋Š” ์ œํ•œ์ด ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ธ๊ณผ์  ์ผ๊ด€์„ฑ ๊ตฌ์„ฑ์š”์†Œ

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

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์ „์ฒด ์ข…์†์„ฑ ์ถ”์ 

์™œ ํ•„์š”ํ•œ๊ฐ€์š”? ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์ œ๋  ๋•Œ ๊ฐ ๋ ˆ์ฝ”๋“œ, ๊ฐ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์—๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์˜์กดํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ์ด์ž ์ˆœ์ง„ํ•œ ๋ณ€ํ™”๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ๊ฐ ๋ฉ”์‹œ์ง€์— ์ด์ „ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์ด ์˜ˆ์—์„œ ์ค‘๊ด„ํ˜ธ ์•ˆ์˜ ์ˆซ์ž๋Š” ๋ ˆ์ฝ”๋“œ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๊ฐ’์ด ํฌํ•จ๋œ ์ด๋Ÿฌํ•œ ๋ ˆ์ฝ”๋“œ ์ „์ฒด๊ฐ€ ์ „์†ก๋˜๊ธฐ๋„ ํ•˜๊ณ  ์ผ๋ถ€ ๋ฒ„์ „์ด ์ „์†ก๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์€ ๊ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์—๋Š” ์ด์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋ฌผ๋ก  ์ด ๋ชจ๋“  ๋‚ด์šฉ์€ ์ž์ฒด์ ์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค).

์ด ์ ‘๊ทผ ๋ฐฉ์‹(์ „์ฒด ์ถ”์ )์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ถ„๋ช…ํžˆ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋น„์‹ค์šฉ์ ์ž…๋‹ˆ๋‹ค. ์†Œ์…œ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋ชจ๋“  ์—…๋ฐ์ดํŠธ์—์„œ Facebook ๋˜๋Š” VKontakte๋ฅผ ์ „์†กํ•˜๋Š” ๋“ฑ ํ•ด๋‹น ์†Œ์…œ ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ์ด์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์™„์ „ ์˜์กด์„ฑ ์ถ”์ ์— ๋Œ€ํ•œ ๋งŽ์€ ์—ฐ๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์ด์ „์— ์กด์žฌํ•˜๋ฉฐ ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ๋Š” ์‹ค์ œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ช…์‹œ์  ์ข…์†์„ฑ ์ถ”์ 

๋‹ค์Œ์€ ๋” ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์ •๋ณด ์ „์†ก๋„ ๊ณ ๋ ค๋˜์ง€๋งŒ ๋ช…ํ™•ํ•˜๊ฒŒ ์ข…์†๋œ ์ •๋ณด๋งŒ ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค. ์›์น™์ ์œผ๋กœ ๋ฌด์—‡์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š”์ง€๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์ œ๋˜๋ฉด ์ฟผ๋ฆฌ๋Š” ์ด์ „ ์ข…์†์„ฑ์ด ์ถฉ์กฑ๋œ ๊ฒฝ์šฐ, ์ฆ‰ ํ‘œ์‹œ๋œ ๊ฒฝ์šฐ์—๋งŒ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์˜ ๋ณธ์งˆ์ž…๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๊ทธ๋…€๋Š” ๋ ˆ์ฝ”๋“œ 5๊ฐ€ ๋ ˆ์ฝ”๋“œ 1, 2, 3, 4์— ์˜์กดํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ „์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ด๋ฏธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ†ต๊ณผํ–ˆ์„ ๋•Œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ Penny์˜ ์•ก์„ธ์Šค ๊ฒฐ์ •์— ๋”ฐ๋ฅธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

์•„์ง ์ •๋ณด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๋ฏ€๋กœ ์ด๋Š” ์šฐ๋ฆฌ์—๊ฒŒ๋„ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์ ‘๊ทผ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค ...

๋žจํฌํŠธ ์‹œ๊ณ„

๊ทธ๋“ค์€ ์•„์ฃผ ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Lamport Clock์€ ์ด๋Ÿฌํ•œ ์ข…์†์„ฑ์ด Lamport Clock์ด๋ผ๋Š” ์Šค์นผ๋ผ ํ•จ์ˆ˜๋กœ ์ ‘ํ˜€ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์Šค์นผ๋ผ ํ•จ์ˆ˜๋Š” ์ถ”์ƒ ์ˆซ์ž์ž…๋‹ˆ๋‹ค. ํ”ํžˆ ๋…ผ๋ฆฌ์  ์‹œ๊ฐ„์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๊ฐ ์ด๋ฒคํŠธ๋งˆ๋‹ค ์ด ์นด์šดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์— ์•Œ๋ ค์ง„ ์นด์šดํ„ฐ๋Š” ๊ฐ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ณ  ์™„์ „ํžˆ ๋‹ค๋ฅธ ์‹œ๊ฐ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์‹œ์Šคํ…œ์€ ์–ด๋–ป๊ฒŒ๋“  ๊ทธ๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€์™€ ์‹œ๊ณ„์˜ ๊ท ํ˜•์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?

๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํฐ ์กฐ๊ฐ์„ ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆด์Šต๋‹ˆ๋‹ค. ์นœ๊ตฌ๋Š” ์ปฌ๋ ‰์…˜์˜ ์ผ๋ถ€๊ฐ€ ํฌํ•จ๋œ ํ•œ ๋…ธ๋“œ์— ์‚ด ์ˆ˜ ์žˆ๊ณ  Feed๋Š” ์ด ์ปฌ๋ ‰์…˜์˜ ์ผ๋ถ€๊ฐ€ ํฌํ•จ๋œ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์‚ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ค„์„ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๊นŒ? ์ฒซ ๋ฒˆ์งธ ํ”ผ๋“œ์—๋Š” "๋ณต์ œ๋จ"์ด๋ผ๊ณ  ํ‘œ์‹œ๋˜๊ณ  ๊ทธ ๋‹ค์Œ์—๋Š” ์นœ๊ตฌ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์ด Friends ์ปฌ๋ ‰์…˜์˜ Friends ์ข…์†์„ฑ๋„ ์ „๋‹ฌ๋  ๋•Œ๊นŒ์ง€ ํ”ผ๋“œ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ผ์ข…์˜ ๋ณด์žฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ์ œ๊ฐ€ ์–ธ๊ธ‰ํ•œ ์ƒํ™ฉ๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Feed์˜ ์นด์šดํ„ฐ ์‹œ๊ฐ„์ด ๋…ผ๋ฆฌ์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๋”ฐ๋ผ์„œ ์ด Lamport ์‹œ๊ณ„ ๋ฐ ์ธ๊ณผ ๊ด€๊ณ„ ์ผ๊ด€์„ฑ(Lamport ์‹œ๊ณ„๋ฅผ ํ†ตํ•ด ์„ค๋ช…๋จ)์˜ ์ฃผ์š” ์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ A์™€ B๊ฐ€ ์žˆ๊ณ  ์ด๋ฒคํŠธ B๊ฐ€ ์ด๋ฒคํŠธ A*์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฒคํŠธ A์˜ LogicalTime์€ ๋‹ค์Œ๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ B์˜ LogicalTime

* ๋•Œ๋•Œ๋กœ ๊ทธ๋“ค์€ A๊ฐ€ B๋ณด๋‹ค ๋จผ์ € ์ผ์–ด๋‚ฌ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, A๊ฐ€ B๋ณด๋‹ค ๋จผ์ € ์ผ์–ด๋‚ฌ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐœ์ƒํ•œ ์ „์ฒด ์‚ฌ๊ฑด ์ง‘ํ•ฉ์„ ๋ถ€๋ถ„์ ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํŠน์ • ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค.

๊ทธ ๋ฐ˜๋Œ€๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ Lamport Clock์˜ ์ฃผ์š” ๋‹จ์  ์ค‘ ํ•˜๋‚˜์ธ ๋ถ€๋ถ„ ์ฃผ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋™์‹œ ์‚ฌ๊ฑด, ์ฆ‰ (A๊ฐ€ B๋ณด๋‹ค ๋จผ์ € ์ผ์–ด๋‚ฌ์Œ)๋„ ์•„๋‹ˆ๊ณ  (A๊ฐ€ B๋ณด๋‹ค ๋จผ์ € ์ผ์–ด๋‚ฌ์Œ)๋„ ์•„๋‹Œ ์‚ฌ๊ฑด์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Leonard๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์นœ๊ตฌ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด Leonard๊ฐ€ ์•„๋‹ˆ๋ผ Sheldon๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค).
์ด๊ฒƒ์€ Lamport ์‹œ๊ณ„๋กœ ์ž‘์—…ํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ธฐ๋Šฅ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ณ  ์ด๋กœ๋ถ€ํ„ฐ ์•„๋งˆ๋„ ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ๊ฐ€ ์ข…์†์ ์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฒฐ๋ก ์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์‚ฌ์‹ค์ด๊ธฐ ๋•Œ๋ฌธ์— LogicalTime A๊ฐ€ LogicalTime B๋ณด๋‹ค ์ž‘์œผ๋ฉด B๋Š” A๋ณด๋‹ค ๋จผ์ € ๋ฐœ์ƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์ƒ์ด๋ผ๋ฉด ์•„๋งˆ๋„์š”.

๋ฒกํ„ฐ ์‹œ๊ณ„

Lamport ์‹œ๊ณ„์˜ ๋…ผ๋ฆฌ์  ๋ฐœ์ „์€ ๋ฒกํ„ฐ ์‹œ๊ณ„์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์žˆ๋Š” ๊ฐ ๋…ธ๋“œ์—๋Š” ์ž์ฒด ๋ณ„๋„์˜ ํด๋Ÿญ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ฒกํ„ฐ๋กœ ์ „์†ก๋œ๋‹ค๋Š” ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ ๋ฒกํ„ฐ์˜ 1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” Feed๋ฅผ ๋‹ด๋‹นํ•˜๊ณ  ๋ฒกํ„ฐ์˜ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” Friends(๊ฐ ๋…ธ๋“œ)๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ œ ๊ทธ๋“ค์€ ์ฆ๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค: ๊ธ€์„ ์“ธ ๋•Œ โ€œFeedโ€์˜ 2 ์ง€์ˆ˜๋Š” 3, XNUMX, XNUMX์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

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

์ƒค๋“œ๊ฐ€ 10๊ฐœ์ธ ๊ฒฝ์šฐ ์••์ถ•ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ์ƒ๊ฐํ•ด๋‚ด๋”๋ผ๋„ 10๊ฐœ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŽ˜์ด๋กœ๋“œ๋Š” ์—ฌ์ „ํžˆ ์ด ์ „์ฒด ๋ฒกํ„ฐ์˜ ๋ณผ๋ฅจ๋ณด๋‹ค ๋ช‡ ๋ฐฐ ๋” ์ž‘์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ๋งˆ์Œ๊ณผ ์ด๋ฅผ ์•…๋ฌผ๊ณ  ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ํฌ๊ธฐํ•˜๊ณ  ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ŠคํŒจ๋„ˆ ํŠธ๋ฃจํƒ€์ž„. ์›์ž์‹œ๊ณ„

์ŠคํŒจ๋„ˆ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ํ–ˆ์–ด์š”. ์ด๊ฒƒ์€ XNUMX์„ธ๊ธฐ์— ๋‚˜์˜จ ๋ฉ‹์ง„ ์ผ์ž…๋‹ˆ๋‹ค. ์›์ž ์‹œ๊ณ„, GPS ๋™๊ธฐํ™”์ž…๋‹ˆ๋‹ค.

๋ฌด์Šจ ์•„์ด๋””์–ด์•ผ? "Spanner"๋Š” ์ตœ๊ทผ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ Google ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค(SQL์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค). ๊ฐ ๊ฑฐ๋ž˜์—๋Š” ํƒ€์ž„ ์Šคํƒฌํ”„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์€ ๋™๊ธฐํ™”*๋˜๋ฏ€๋กœ ๊ฐ ์ด๋ฒคํŠธ์— ํŠน์ • ์‹œ๊ฐ„์ด ํ• ๋‹น๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›์ž ์‹œ๊ณ„์—๋Š” ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์žˆ์œผ๋ฉฐ ๊ทธ ํ›„์—๋Š” ๋‹ค๋ฅธ ์‹œ๊ฐ„์ด "๋ฐœ์ƒ"ํ•˜๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๋”ฐ๋ผ์„œ ๊ฐ„๋‹จํžˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์“ฐ๊ณ  ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ์ด๋ฒคํŠธ์˜ ์ง๋ ฌํ™”๊ฐ€ ์ž๋™์œผ๋กœ ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์›์น™์ ์œผ๋กœ ์ƒ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์ผ๊ด€์„ฑ ๋ชจ๋ธ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์™ธ๋ถ€ ์ผ๊ด€์„ฑ์ž…๋‹ˆ๋‹ค.

* ์ด๊ฒƒ์ด Lampart ์‹œ๊ณ„์˜ ์ฃผ์š” ๋ฌธ์ œ์ ์ž…๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ๋Š” ๊ฒฐ์ฝ” ๋™๊ธฐํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ฐˆ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ NTP๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์—ฌ์ „ํžˆ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "Spanner"์—๋Š” ์›์ž ์‹œ๊ณ„๊ฐ€ ์žˆ์œผ๋ฉฐ ๋™๊ธฐํ™”๋Š” ๋งˆ์ดํฌ๋กœ์ดˆ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์™œ ์„ ํƒํ•˜์ง€ ์•Š์•˜๋‚˜์š”? ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์›์ž ์‹œ๊ณ„๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋…ธํŠธ๋ถ์— ๋‚ด์žฅ๋œ ์‹œ๊ณ„๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์ผ์ข…์˜ ๋งค์šฐ ๋ฉ‹์ง„ GPS ๋™๊ธฐํ™” ๊ธฐ๋Šฅ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค... ํ•˜์ง€๋งŒ ํ˜„์žฌ๋กœ์„  ๊ฐ€๋Šฅํ•œ ์ตœ๊ณ ๋Š” Amazon, ๋ฒ ์ด์Šค ์Šคํ…Œ์ด์…˜์ž…๋‹ˆ๋‹ค. ๊ด‘์‹ ์ž๋ฅผ ์œ„ํ•œ... ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ์‹œ๊ณ„๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. .

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‹œ๊ณ„

์ด๋Š” ์‹ค์ œ๋กœ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•  ๋•Œ MongoDB์—์„œ ํ™•์ธํ•˜๋Š” ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์–ด๋–ป๊ฒŒ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์ž…๋‹ˆ๊นŒ? ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๋Š” ์Šค์นผ๋ผ ๊ฐ’์ด์ง€๋งŒ ๋‘ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

  • ์ฒซ ๋ฒˆ์งธ๋Š” Unix ์‹œ๋Œ€(โ€œ์ปดํ“จํ„ฐ ์„ธ๊ณ„์˜ ์‹œ์ž‘โ€ ์ดํ›„ ๋ช‡ ์ดˆ๊ฐ€ ์ง€๋‚ฌ๋Š”์ง€)์ž…๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ๋Š” ์•ฝ๊ฐ„์˜ ์ฆ๋ถ„์ด๋ฉฐ ์—ญ์‹œ 32๋น„ํŠธ unsigned int์ž…๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์ด MongoDB์— ์™œ ์ค‘์š”ํ•œ๊ฐ€์š”? ํŠน์ • ์‹œ์ ์— ์ผ์ข…์˜ ๋ฐฑ์—… ๋ ˆ์Šคํ† ๋ž‘์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ฆ‰ ์ด๋ฒคํŠธ๊ฐ€ ์‹œ๊ฐ„๋ณ„๋กœ ์ƒ‰์ธํ™”๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฒฝ์šฐ ์ด๋ฒคํŠธ๋Š” ํŠน์ • ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ฐœ์ƒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ด์œ ๋Š” ๋‹น์‹ ์—๊ฒŒ๋งŒ ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š”(์•„๋ฌด์—๊ฒŒ๋„ ๋งํ•˜์ง€ ๋งˆ์„ธ์š”)! ์šฐ๋ฆฌ๊ฐ€ ์ด๋ ‡๊ฒŒ ํ•œ ์ด์œ ๋Š” ์ด๊ฒƒ์ด MongoDB OpLog์—์„œ ์กฐ์งํ™”๋˜๊ณ  ์ธ๋ฑ์‹ฑ๋œ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. OpLog๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌํ•จํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋จผ์ € OpLog๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ๋ณต์ œ๋œ ๋‚ ์งœ ๋˜๋Š” ์ƒค๋“œ์ธ ๊ฒฝ์šฐ ์Šคํ† ๋ฆฌ์ง€ ์ž์ฒด์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ฃผ๋œ ์ด์œ ์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ์‹ค์ œ์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋‹จ์ˆœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ”๋“œ๊ฐ€ ์ ๊ณ  ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•˜๋Š” ์†์ƒ๋œ ํ•ญ๋ชฉ์ด ๊ฐ€๋Šฅํ•œ ํ•œ ์ ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ oplog๊ฐ€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‹œ๊ณ„์— ์˜ํ•ด ์ƒ‰์ธํ™”๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ •๋ง ํฐ ์„ฑ๊ณผ๋ฅผ ๊ฑฐ๋‘์—ˆ๊ณ  ์ฒซ ๋ฒˆ์งธ ํ”„๋กœํ† ํƒ€์ž…์—์„œ ๋งˆ๋ฒ•์ฒ˜๋Ÿผ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๋ฉ‹์กŒ์Šต๋‹ˆ๋‹ค!

์‹œ๊ณ„ ๋™๊ธฐํ™”

๊ณผํ•™ ๋ฌธํ—Œ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋™๊ธฐํ™” ๋ฐฉ๋ฒ•์ด ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋‘ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒค๋“œ๊ฐ€ ์žˆ์„ ๋•Œ์˜ ๋™๊ธฐํ™”์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” "๋‹จ์ผ ๋งˆ์Šคํ„ฐ"์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜๋Š” OpLog๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์ด ์ด๋ฏธ "Oplog" ์ž์ฒด์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒค๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์„œ๋Š” ์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฒกํ„ฐ ์‹œ๊ณ„๊ฐ€ ๋” ๋„์›€์ด ๋œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค! ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ์—๊ฒ ๊ทธ๋Ÿฐ ๊ฒƒ๋“ค์ด ์—†์Šต๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๋‘ ๋ฒˆ์งธ๊ฐ€ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "Heartbeats"์ž…๋‹ˆ๋‹ค. ๋‹จ์œ„ ์‹œ๊ฐ„๋งˆ๋‹ค ๋ฐœ์ƒํ•˜๋Š” ์ผ๋ถ€ ์‹ ํ˜ธ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•˜ํŠธ๋น„ํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋Š๋ ค์„œ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ง„์ •ํ•œ ์‹œ๊ฐ„์€ ๋†€๋ผ์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด๊ฒƒ์€ ์•„๋งˆ๋„ ๋ฏธ๋ž˜์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค... Atlas์—์„œ ์ด๋ฏธ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋ฏธ ๋น ๋ฅธ "Amazon" ์‹œ๊ฐ„ ๋™๊ธฐํ™” ์žฅ์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ—˜๋‹ด์€ ๋ชจ๋“  ๋ฉ”์‹œ์ง€์— ์‹œ๊ฐ„์ด ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋Œ€๋žต ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋…ธ๋“œ, ๋“œ๋ผ์ด๋ฒ„, ๋ฐ์ดํ„ฐ ๋…ธ๋“œ ๋ผ์šฐํ„ฐ ์‚ฌ์ด์˜ ๋ชจ๋“  ๋ฉ”์‹œ์ง€, MongoDB์˜ ๋ชจ๋“  ๊ฒƒ์€ ์ผ์ข…์˜ ์š”์†Œ, ์ฆ‰ ์‹คํ–‰๋˜๋Š” ์‹œ๊ณ„๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์–ด๋””์—์„œ๋‚˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‹œ๊ฐ„์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. 64๋น„ํŠธ? ์ด๊ฒƒ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์—์„œ๋Š” ์ข€ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ๋ณต์ œ ์„ธํŠธ๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋“ฑ๊ณผ ์ค‘๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด์กฐ๋Š” ๋ณต์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ํ•ญ์ƒ ๊ธฐ๋ณธ๊ณผ ์™„์ „ํžˆ ๋™๊ธฐํ™”๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

ํŠน์ • ์‹œ๊ฐ„ ๊ฐ’์œผ๋กœ "Primery"์— ์‚ฝ์ž…์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์‚ฝ์ž…์€ ๋‚ด๋ถ€ ๊ฐœ์ˆ˜๋ฅผ 11๋งŒํผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ์ตœ๋Œ€๊ฐ’์ธ ๊ฒฝ์šฐ). ๋˜๋Š” ์‹œ๊ณ„ ๊ฐ’์„ ํ™•์ธํ•˜๊ณ  ์‹œ๊ณ„ ๊ฐ’์ด ๋” ํฌ๋ฉด ์‹œ๊ณ„์— ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‹œ๊ฐ„๋ณ„๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฐ€ ๋…น์Œ์„ ํ•˜๊ณ  ๋‚˜๋ฉด ์ค‘์š”ํ•œ ์ˆœ๊ฐ„์ด ์ผ์–ด๋‚œ๋‹ค. ์‹œ๊ณ„๋Š” "MongoDB"์— ์žˆ์œผ๋ฉฐ "Oplog"์— ์“ฐ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ฆ๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณ ์ „ ๊ธฐ์‚ฌ์—์„œ ์ด๋ฒคํŠธ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋…ธ๋“œ์— ๋„๋‹ฌํ•  ๋•Œ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฉ”์‹œ์ง€๊ฐ€ ๋„์ฐฉํ–ˆ์œผ๋ฉฐ ์ด๋Š” ์‹œ์Šคํ…œ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ์—ฐ๊ตฌ ์ค‘์— ์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ํ•ด์„๋ ์ง€ ์™„์ „ํžˆ ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์ด "Oplog"์— ๋ฐ˜์˜๋˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ค ์‹์œผ๋กœ๋“  ํ•ด์„๋˜์ง€ ์•Š์œผ๋ฉฐ ์‹œ์Šคํ…œ ์ƒํƒœ์˜ ๋ณ€๊ฒฝ์€ "Oplog"์˜ ํ•ญ๋ชฉ์ผ ๋ฟ์ด๋ผ๋Š” ๊ฒƒ์„ ํ™•์‹คํžˆ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ๋ชจ๋“  ๊ฒƒ์„ ๋‹จ์ˆœํ™”์‹œํ‚ต๋‹ˆ๋‹ค. ๋ชจ๋ธ์€ ์ด๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ํ•˜๋‚˜์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋‚ด์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉฐ ๊ธฐํƒ€ ๋งŽ์€ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

"Oplog"์— ์ด๋ฏธ ๊ธฐ๋ก๋œ ๊ฐ’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. "Oplog"์— ์ด๋ฏธ ์ด ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ์‹œ๊ฐ„์€ 12๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ฝ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ๋…ธ๋“œ(๋ณด์กฐ)์—์„œ ์‹œ์ž‘๋˜๊ณ  afterClusterTime์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€. ๊ทธ๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. โ€œ์ ์–ด๋„ 12์‹œ ์ดํ›„๋‚˜ XNUMX์‹œ ๋™์•ˆ ์ผ์–ด๋‚œ ๋ชจ๋“  ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.โ€(์œ„ ๊ทธ๋ฆผ ์ฐธ์กฐ)

์ด๊ฒƒ์ด ๋ฐ”๋กœ ์ธ๊ณผ๊ด€๊ณ„(CAT)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ๋Š” ์ด๊ฒƒ์ด ๊ทธ ์ž์ฒด๋กœ ์ผ๊ด€๋œ ์‹œ๊ฐ„ ์กฐ๊ฐ์ด๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ 12์‹œ์ ์— ๊ด€์ฐฐ๋œ ์‹œ์Šคํ…œ์˜ ์ƒํƒœ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ์—ฌ๊ธฐ์—๋Š” ์•„์ง ์•„๋ฌด๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋ณธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•˜๊ธฐ ์œ„ํ•ด ๋ณด์กฐ๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค... ์ด์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ด ๊ฐ’์„ ๋‹ค์‹œ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๊ทธ๊ฒƒ์ด ๋ชจ๋“  ๊ฒƒ์ด ๊ฑฐ์˜ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ฑฐ์˜.

"๊ฑฐ์˜"์€(๋Š”) ๋ฌด์Šจ ๋œป์ธ๊ฐ€์š”? ์ด ๋ชจ๋“  ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ฝ๊ณ  ์ดํ•ดํ•œ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. ClusterTime์ด ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๋‚ด๋ถ€ ๋…ผ๋ฆฌ ์‹œ๊ณ„๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๊ณ  ๋‹ค์Œ ํ•ญ๋ชฉ์ด 20์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” 64์ค„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ๋žŒ์ด XNUMX์„ ๋บ€ ๊ฐ€์žฅ ํฐ XNUMX๋น„ํŠธ ์ˆซ์ž๋ฅผ ์ „์†กํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์™œ "๋งˆ์ด๋„ˆ์Šค XNUMX"์ธ๊ฐ€์š”? ๋‚ด๋ถ€ ์‹œ๊ณ„๊ฐ€ ์ด ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋˜๊ธฐ ๋•Œ๋ฌธ์—(๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์€ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ํฌ๊ณ  ํ˜„์žฌ ์‹œ๊ฐ„๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค) "Oplog"์— ํ•ญ๋ชฉ์ด ๋ฐœ์ƒํ•˜๊ณ  ์‹œ๊ณ„๋Š” ๋‹ค๋ฅธ ๋‹จ์œ„๋กœ ์ฆ๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€๊ฐ’์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋‹จ์ˆœํžˆ ๋ชจ๋“  ๋‹จ์œ„๊ฐ€ ์žˆ๊ณ  ๋” ์ด์ƒ ๊ฐˆ ๊ณณ์ด ์—†์Šต๋‹ˆ๋‹ค), unsaint int).

๊ทธ ํ›„์—๋Š” ์‹œ์Šคํ…œ์— ์–ด๋–ค ๊ฒƒ๋„ ์ ˆ๋Œ€ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์–ธ๋กœ๋“œ ๋ฐ ์ฒญ์†Œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ์ˆ˜์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๊ฐ€์šฉ์„ฑ:

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

๊ฒŒ๋‹ค๊ฐ€ ์ด๊ฒƒ์ด ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋ณต์ œ๋˜๋ฉด ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋‹จ์ˆœํžˆ ๋‹ค์šด๋ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ์•„์ฃผ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ ˆ๋Œ€ ์šฉ๋‚ฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ! ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ์ด ์ˆœ๊ฐ„์„ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ˆœ๊ฐ„ โ€‹โ€‹์ค‘ ํ•˜๋‚˜๋กœ ์—ฌ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•?

์šฐ๋ฆฌ์˜ ๋ฐฉ๋ฒ•์€ ClusterTime์— ์„œ๋ช…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฉ”์‹œ์ง€์—์„œ ์ „์†ก๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค(ํŒŒ๋ž€์ƒ‰ ํ…์ŠคํŠธ ์•ž). ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์„œ๋ช…(ํŒŒ๋ž€์ƒ‰ ํ…์ŠคํŠธ)์„ ์ƒ์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์„œ๋ช…์€ ๋ณด์•ˆ ๊ฒฝ๊ณ„ ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€์— ์ €์žฅ๋œ ํ‚ค์— ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ž์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค(์‚ฌ์šฉ์ž๋Š” ์ด์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๋ณผ ์ˆ˜ ์—†์Œ). ํ•ด์‹œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ฐ ๋ฉ”์‹œ์ง€๋Š” ์ƒ์„ฑ๋  ๋•Œ ์„œ๋ช…๋˜๊ณ  ์ˆ˜์‹ ๋  ๋•Œ ์œ ํšจ์„ฑ์ด ๊ฒ€์‚ฌ๋ฉ๋‹ˆ๋‹ค.
์•„๋งˆ๋„ ์‚ฌ๋žŒ๋“ค์˜ ๋งˆ์Œ ์†์—๋Š” "์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์†๋„๋ฅผ ๋Šฆ์ถ”๋Š”๊ฐ€?"๋ผ๋Š” ์งˆ๋ฌธ์ด ๋– ์˜ค๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์ด ๊ธฐ๋Šฅ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์ด๋Š” afterClusterTime ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ์–ด์จŒ๋“  ๋‹จ์ˆœํžˆ ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ 3.6๋ถ€ํ„ฐ ํ—˜๋‹ด์€ ํ•ญ์ƒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ง€์†์ ์ธ ์„œ๋ช… ์ƒ์„ฑ์„ ๋ฐฉ์น˜ํ•˜๋ฉด ๊ธฐ๋Šฅ์ด ์—†์–ด๋„ ์‹œ์Šคํ…œ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๋ฏ€๋กœ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ํ–ˆ๋‚˜์š”?

๋นจ๋ฆฌ ํ•˜์„ธ์š”!

๊ฝค ๊ฐ„๋‹จํ•œ ์ผ์ด์ง€๋งŒ ์š”๋ น์€ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ€์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์„œ๋ช…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ•ด์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์บ์‹œ๋ฅผ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ํŠน์ • ์‹œ๊ฐ„์„ ์„œ๋ช…ํ•˜์ง€ ์•Š๊ณ  ๋ฒ”์œ„๋ฅผ ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฐ’์ด ๋„์ฐฉํ•˜๋ฉด Range๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋งˆ์ง€๋ง‰ 16๋น„ํŠธ๋ฅผ ๋งˆ์Šคํฌ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋‹ค์Œ ๊ฐ’์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์ด๋Ÿฌํ•œ ์„œ๋ช…์„ ์ˆ˜์‹ ํ•จ์œผ๋กœ์จ ์šฐ๋ฆฌ๋Š” ์‹œ์Šคํ…œ ์†๋„๋ฅผ (์ƒ๋Œ€์ ์œผ๋กœ) 65๋ฐฐ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ ์‹ค์ œ๋กœ ์‹œ๊ฐ„์ด 10๋ฐฐ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ์„œ๋กœ ์ถฉ๋Œํ•˜๋ฉด ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ์‹ค์ œ ์‚ฌ๋ก€์—์„œ๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Range ์„œ๋ช…๊ณผ ์„œ๋ช…์˜ ์กฐํ•ฉ์œผ๋กœ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ๋ฐฐ์› ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ์„œ ๋ฐฐ์šด ๊ตํ›ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํฅ๋ฏธ๋กœ์šด ๊ฒƒ๋“ค์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฃŒ, ์ด์•ผ๊ธฐ, ๊ธฐ์‚ฌ๋ฅผ ์ฝ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์ž‘์—…ํ•  ๋•Œ(ํŠนํžˆ ์ง€๊ธˆ์€ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋“ฑ) ์ฝ๊ณ  ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ƒ๊ฐํ•ด ๋‚ด์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ์žฌ๋ฃŒ๋งŒ ๊ฐ€์ ธ๊ฐ”์„ ๋ฟ์ž…๋‹ˆ๋‹ค.

    ์ผ๋ฐ˜์ ์œผ๋กœ ํ•™์ˆ ํšŒ์˜(์˜ˆ: Sigmon)๊ฐ€ ์žˆ์„ ๋•Œ ์‚ฌ๊ณ ์—๋Š” ์–ด๋Š ์ •๋„ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด์— ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ƒˆ๋กœ์šด ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ฌ๊ธฐ์—๋Š” ํŠน๋ณ„ํžˆ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์ฐธ์‹ ํ•จ์€ ๊ธฐ์กด ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ•จ๊ป˜ ํ˜ผํ•ฉํ•˜๋Š” ๋ฐฉ์‹์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ€์žฅ ๋จผ์ € ํ•  ์ผ์€ Lampart๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๊ณ ์ „์„ ์ฝ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ƒ์‚ฐ ๊ณผ์ •์—์„œ๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„ ์ค‘ ๋งŽ์€ ๋ถ„๋“ค์ด ์ถ”์ƒ์ ์ธ ๊ณต๋ฐฑ ์ƒํƒœ์˜ "๊ตฌํ˜•" ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ€์šฉ์„ฑ, ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๋ฐ ๋‚ด๊ฒฐํ•จ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์ •์ƒ์ ์ด๊ณ  ์‹ค์ œ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง๋ฉดํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์•„์ด๋””์–ด๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์™„์ „ํžˆ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๊ธฐ์‚ฌ๋ฅผ ํ•˜๋‚˜์˜ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ๊ฒฐํ•ฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋ช…์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Paxos ํ”„๋กœํ† ์ฝœ์„ ๊ณ ๋ คํ•œ ๊ธฐ์‚ฌ์—์„œ ๋‚˜์™”๋Š”๋ฐ, ๋น„์ž”ํ‹ด ์‹คํŒจ์ž์˜ ๊ฒฝ์šฐ ์Šน์ธ ํ”„๋กœํ† ์ฝœ ๋‚ด๋ถ€์— ์žˆ๊ณ , ๋น„์ž”ํ‹ด ์‹คํŒจ์ž์˜ ๊ฒฝ์šฐ ์Šน์ธ ํ”„๋กœํ† ์ฝœ ์™ธ๋ถ€์— ์žˆ์Šต๋‹ˆ๋‹ค... ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜๊ณ  ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

    ์—ฌ๊ธฐ์—๋Š” ์ „ํ˜€ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค! ํ•˜์ง€๋งŒ ๋‹ค ์„ž์ž๋งˆ์ž... ๊ณ„๋ž€, ๋งˆ์š”๋„ค์ฆˆ, ์˜ค์ด๊ฐ€ ์ด๋ฏธ ๋ฐœ๋ช…๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ฌ๋ฆฌ๋น„์— ์ƒ๋Ÿฌ๋“œ ๋ ˆ์‹œํ”ผ๊ฐ€ ๋ง๋„ ์•ˆ๋œ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค... ๊ฑฐ์˜ ๊ฐ™์€ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์ด๊ฒƒ์œผ๋กœ ๋งˆ์น˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์งˆ๋ฌธ

์ฒญ์ค‘(์ดํ•˜ B)์˜ ์งˆ๋ฌธ: โ€“ ๋ณด๊ณ ์„œ๋ฅผ ๋ณด๋‚ด์ฃผ์‹  Mikhail์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์‹œ๊ฐ„์— ๊ด€ํ•œ ์ฃผ์ œ๊ฐ€ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ํ—˜๋‹ด์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์€ ์ž์‹ ๋งŒ์˜ ์‹œ๊ฐ„์ด ์žˆ๊ณ , ๋ชจ๋‘๊ฐ€ ์ž์‹ ์˜ ํ˜„์ง€ ์‹œ๊ฐ„์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ๋ฐ”์— ๋”ฐ๋ฅด๋ฉด ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„, ์ฟผ๋ฆฌ ํ”Œ๋ž˜๋„ˆ, ์ƒค๋“œ ๋“ฑ์„ ๊ฐ€์ง„ ๋งŽ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ‘์ž๊ธฐ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹œ์Šคํ…œ์€ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? XNUMX๋ถ„ ์ „, ๋ˆ„๊ตฐ๊ฐ€ XNUMX๋ถ„ ๋Šฆ์—ˆ๋‚˜์š”? ์šฐ๋ฆฌ๋Š” ์–ด๋””๋กœ ๊ฐˆ ๊ฒƒ์ธ๊ฐ€?

์‚ฐ: โ€“ ์ •๋ง ์ข‹์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋‹จ์ง€ ์ƒค๋“œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ƒค๋“œ 1๊ณผ ์ƒค๋“œ 2๊ฐ€ ์žˆ๊ณ  ์ด ๋‘ ์ƒค๋“œ์—์„œ ์ฝ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ƒค๋“œ์—๋Š” ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ๊ณ , ์•Œ๊ณ  ์žˆ๋Š” ์‹œ๊ฐ„์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ oplog์— ์กด์žฌํ•˜๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.
์ƒค๋“œ 1์ด ๋ฐฑ๋งŒ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ–ˆ๊ณ , ์ƒค๋“œ 2๋Š” ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์š”์ฒญ์ด ์ƒค๋“œ 2๊ฐœ์— ์™”๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” afterClusterTime์ด ๋ฐฑ๋งŒ์ด ๋„˜์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ๋Š” ์•ž์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด ์ƒค๋“œ XNUMX๋Š” ์ „ํ˜€ ์‘๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—์„œ : โ€“ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ์‹œ๊ฐ„์„ ๋™๊ธฐํ™”ํ•˜๊ณ  ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฐ: - ๋™๊ธฐํ™”๊ฐ€ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. Shard๋Š” afterClusterTime์ด ๊ทธ์—๊ฒŒ ์˜ค๊ณ  "Oplog"์—์„œ ์‹œ๊ฐ„์„ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ์Šน์ธ์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ทธ๋Š” ์ž์‹ ์˜ ์‹œ๊ฐ„์„ ์ด ๊ฐ’์œผ๋กœ ๋†’์ธ๋‹ค. ์ด๋Š” ์ด ์š”์ฒญ๊ณผ ์ผ์น˜ํ•˜๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ด ์‚ฌ๊ฑด์„ ์ธ์œ„์ ์œผ๋กœ ๋งŒ๋“ค์–ด ์ธ๊ณผ๊ด€๊ณ„์— ์ผ์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์—์„œ : โ€“ ์ดํ›„์— ๋„คํŠธ์›Œํฌ ์–ด๋”˜๊ฐ€์—์„œ ์†์‹ค๋œ ๋‹ค๋ฅธ ์ด๋ฒคํŠธ๊ฐ€ ๊ทธ์—๊ฒŒ ์˜จ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

์‚ฐ: โ€“ Shard๋Š” ๋‹จ์ผ ๋งˆ์Šคํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ๋Š” ์˜ค์ง€ ์•Š๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ์ด๋ฏธ ๋“ฑ๋กํ–ˆ๋‹ค๋ฉด ๊ทธ๋“ค์€ ์˜ค์ง€ ์•Š์„ ๊ฒƒ์ด์ง€๋งŒ ๋‚˜์ค‘์— ์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋”˜๊ฐ€์— ๋ญ”๊ฐ€๊ฐ€ ๊ฑธ๋ ค์„œ ๊ธ€์„ ์“ฐ์ง€ ์•Š๊ณ  ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์ด ๊นจ์ง€๋Š” ์ผ์€ ์ผ์–ด๋‚  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ๊ธ€์„ ์“ฐ์ง€ ์•Š์œผ๋ฉด ๋ชจ๋‘ ๋‹ค์Œ์— ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Š” ๊ทธ๋“ค์„ ๊ธฐ๋‹ค๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค).

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์—์„œ : โ€“ ๋Œ€๊ธฐ์—ด์— ๊ด€ํ•ด ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ํŠน์ • ์ž‘์—… ๋Œ€๊ธฐ์—ด์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ์—ฌ๊ธฐ์— 10์ผ, 11์ผ์ด ์˜ต๋‹ˆ๋‹ค... 12์ผ์€ ์‚ฌ๋ผ์กŒ๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์ด ์‹คํ˜„๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ‘์ž๊ธฐ ์ฐจ๊ฐ€ ๊ณ ์žฅ ๋‚˜์„œ ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‹คํ–‰๋˜๊ธฐ ์ „์— ๋ˆ„์ ๋˜๋Š” ๋Œ€๊ธฐ์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ํ•˜๋‚˜์˜ ์ƒํƒœ๊ฐ€ ์†์‹ค๋˜๋ฉด ์–ด๋–ค ์น˜๋ช…์ ์ธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? ๊ฒŒ๋‹ค๊ฐ€ ์ด์ „ ์ƒํƒœ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ ๋Š”๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ๋“  ๊ทธ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ• ๊นŒ์š”? ํ•˜์ง€๋งŒ ๊ทธ๋“ค์€ ๊ทธ๋ฅผ ๋ฐ€์–ด๋‚ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค!

์‚ฐ: โ€“ ๋˜ํ•œ ์ข‹์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? MongoDB์—๋Š” ์ฟผ๋Ÿผ ์“ฐ๊ธฐ, ์ฟผ๋Ÿผ ์ฝ๊ธฐ ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ์— ๋ฉ”์‹œ์ง€๊ฐ€ ์†์‹ค๋  ์ˆ˜ ์žˆ๋‚˜์š”? ์“ฐ๊ธฐ๊ฐ€ ์ฟผ๋Ÿผ์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ์ฝ๊ธฐ๊ฐ€ ์ฟผ๋Ÿผ์ด ์•„๋‹Œ ๊ฒฝ์šฐ(์–ด๋–ค ์ข…๋ฅ˜์˜ ์“ฐ๋ ˆ๊ธฐ๋„ ๋‚จ์„ ์ˆ˜ ์žˆ์Œ)
์ธ๊ณผ์  ์ผ๊ด€์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ์‹คํ—˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ ์“ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ๊ฐ€ ์ฟผ๋Ÿผ์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ ์œ„๋ฐ˜์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค!

์šฐ๋ฆฌ์˜ ์กฐ์–ธ: ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ์ตœ์†Œํ•œ ์ฟผ๋Ÿผ ์ฝ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด ๊ฒฝ์šฐ ์ฟผ๋Ÿผ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์†์‹ค๋˜๋”๋ผ๋„ ์•„๋ฌด๊ฒƒ๋„ ์†์‹ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ง๊ต ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ์›ํ•˜์ง€ ์•Š์œผ๋ฉด ์ฟผ๋Ÿผ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์€ ์ง€์†์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณต์ œ ๋ฐ ๋ณต์ œ์™€ ๊ด€๋ จ๋œ ๊ธฐ๊ณ„๋ฅผ ํ†ตํ•ด ๋‚ด๊ตฌ์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

์—์„œ : โ€“ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ƒค๋”ฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ธ์Šคํ„ด์Šค(๊ฐ๊ฐ ๋งˆ์Šคํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์Šฌ๋ ˆ์ด๋ธŒ)๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ž์ฒด ๋จธ์‹ ์˜ Unix ์‹œ๊ฐ„์ด๋‚˜ "๋งˆ์Šคํ„ฐ"์˜ ์‹œ๊ฐ„์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์œผ๋กœ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๊นŒ?

์‚ฐ: โ€“ ์ด์ œ ๋ช…ํ™•ํžˆํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ƒค๋“œ(์ฆ‰, ์ˆ˜ํ‰ ํŒŒํ‹ฐ์…˜) โ€“ ๊ฑฐ๊ธฐ์—๋Š” ํ•ญ์ƒ ๊ธฐ๋ณธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒค๋“œ์—๋Š” "๋งˆ์Šคํ„ฐ"๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ  ๋ณต์ œ๋ณธ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒค๋“œ๋Š” ์ผ๋ถ€ ๋„๋ฉ”์ธ(์ƒค๋“œ์— ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์ด ์žˆ์Œ)์„ ์ง€์›ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ•ญ์ƒ ๋…น์Œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์—์„œ : โ€“ ๊ทธ๋Ÿผ ๋ชจ๋“  ๊ฒƒ์ด ์ˆœ์ „ํžˆ โ€œ๋งˆ์Šคํ„ฐโ€์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ๋‹ค๋Š” ๊ฒ๋‹ˆ๊นŒ? ๋งˆ์Šคํ„ฐ ์‹œ๊ฐ„์€ ํ•ญ์ƒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๊นŒ?

์‚ฐ: - ์˜ˆ. ๋น„์œ ์ ์œผ๋กœ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "๋งˆ์Šคํ„ฐ", "Oplog"์— ๋Œ€ํ•œ ํ•ญ๋ชฉ์ด ๋ฐœ์ƒํ•  ๋•Œ ์‹œ๊ณ„๊ฐ€ ๋˜‘๋”ฑ๊ฑฐ๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—์„œ : โ€“ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ์‹œ๊ฐ„์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์‚ฐ: โ€“ ์ „ํ˜€ ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค! ํด๋ผ์ด์–ธํŠธ์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ๊ณผ ์ผ๊ด€์„ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์„ธ์…˜์„ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ์…˜์˜ ํŠธ๋žœ์žญ์…˜๊ณผ ๊ถŒํ•œ ๊ฒ€์ƒ‰... ์„ธ์…˜์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋…ผ๋ฆฌ์  ์ด๋ฒคํŠธ์˜ ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

์ด ์„ธ์…˜์„ ์—ด๊ณ  ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์›ํ•œ๋‹ค๊ณ  ๋งํ•˜๋ฉด(์„ธ์…˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ๊ณผ์  ์ผ๊ด€์„ฑ์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ) ๋ชจ๋“  ๊ฒƒ์ด ์ž๋™์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์šด์ „์ž๋Š” ์ด ์‹œ๊ฐ„์„ ๊ธฐ์–ตํ•˜๊ณ  ์ƒˆ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์œผ๋ฉด ์ด ์‹œ๊ฐ„์„ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ ์„œ๋ฒ„์—์„œ ์ด์ „ ์‘๋‹ต์ด ๋ฐ˜ํ™˜๋œ ์‘๋‹ต์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์š”์ฒญ์—๋Š” afterCluster("์ด ๊ฐ’๋ณด๋‹ค ํฐ ์‹œ๊ฐ„")์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค! ๊ทธ์—๊ฒŒ๋Š” ์ด๊ฒƒ์ด ์™„์ „ํžˆ ๋ถˆํˆฌ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฒซ์งธ, ๋ณด์กฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์— ์“ฐ๊ณ  ์ง€๋ฆฌ์ ์œผ๋กœ ๋ณต์ œ๋œ ๋ณด์กฐ์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๊ธฐ๋ณธ์—์„œ ๋…นํ™”๋œ ์„ธ์…˜์„ ๋ณด์กฐ๋กœ ์ „์†กํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ ์„ธ์…˜์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ ์„ธ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—์„œ : โ€“ ์ปดํ“จํŒ… ๊ณผํ•™์˜ ์ƒˆ๋กœ์šด ๊ณ„์ธต์ธ CRDT(์ถฉ๋Œ ์—†๋Š” ๋ณต์ œ ๋ฐ์ดํ„ฐ ์œ ํ˜•) ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ์ตœ์ข… ์ผ๊ด€์„ฑ ์ฃผ์ œ์™€ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด ๋ณด์…จ๋‚˜์š”? ์ด์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ๋ง์”€ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์‚ฐ: - ์ข‹์€ ์งˆ๋ฌธ! CRDT๋Š” ์“ฐ๊ธฐ ์ถฉ๋Œ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. MongoDB์—์„œ๋Š” ๋‹จ์ผ ๋งˆ์Šคํ„ฐ์ž…๋‹ˆ๋‹ค.

์—์„œ : - ๋ฐ๋ธŒ์˜ต์Šค์—์„œ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์‹ค ์„ธ๊ณ„์—์„œ๋Š” ๋น„์ž”ํ‹ด ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋ณดํ˜ธ ๊ฒฝ๊ณ„ ๋‚ด๋ถ€์˜ ์‚ฌ์•…ํ•œ ์‚ฌ๋žŒ๋“ค์ด ํ”„๋กœํ† ์ฝœ์„ ์ฐŒ๋ฅด๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ํŠน๋ณ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณต์˜ˆํ’ˆ ํŒจํ‚ค์ง€๋ฅผ ๋ณด๋‚ด๋Š” ์˜ˆ์ˆ˜ํšŒ ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์‚ฐ: โ€“ ๊ฒฝ๊ณ„ ๋‚ด๋ถ€์˜ ์•…ํ•œ ์‚ฌ๋žŒ๋“ค์€ ํŠธ๋กœ์ด ๋ชฉ๋งˆ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค! ๊ฒฝ๊ณ„ ๋‚ด๋ถ€์˜ ์‚ฌ์•…ํ•œ ์‚ฌ๋žŒ๋“ค์€ ๋งŽ์€ ๋‚˜์œ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—์„œ : โ€“ ๋Œ€๋žต์ ์œผ๋กœ ๋งํ•˜๋ฉด ์„œ๋ฒ„์— ๊ตฌ๋ฉ์„ ๋šซ์–ด ์ฝ”๋ผ๋ฆฌ ๋™๋ฌผ์›์„ ๋งŒ๋“ค์–ด ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด๋ฅผ ์˜์›ํžˆ ๋ถ•๊ดด์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™ ๋ณต๊ตฌ์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹คโ€ฆ ์ด๊ฒƒ์€ ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ์ž…๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ. ๋ฐ˜๋ฉด์— ์ด๊ฒƒ์€ ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์ƒํ™œ์—์„œ ์‹ค์ œ๋กœ ์œ ์‚ฌํ•œ ๋‚ด๋ถ€ ๊ณต๊ฒฉ์ด ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์‚ฐ: โ€“ ์‹ค์ƒํ™œ์—์„œ ๋ณด์•ˆ ์นจํ•ด๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ๋ฐœ ์ฒ ํ•™์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฒฝ๊ณ„์„ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์„ฑ์ด์ž ๋ฒฝ์ž…๋‹ˆ๋‹ค. ๊ฒฝ๊ณ„์„  ์•ˆ์—์„œ๋Š” ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ฌด์—‡์ด๋“  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•œ ์‚ฌ์šฉ์ž๋„ ์žˆ๊ณ , ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋„ ์žˆ๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ถŒ๋ฆฌ์— ๋”ฐ๋ผ ์ด์šฉ์ž๊ฐ€ ์ž…ํž ์ˆ˜ ์žˆ๋Š” ํ”ผํ•ด๋Š” ์ฅ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ณ , ์ฝ”๋ผ๋ฆฌ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋Š” ๋ฌด์—‡์ด๋“  ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ๋œ ๊ถŒ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋Š” ํ”ผํ•ด๋ฅผ ํ›จ์”ฌ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์‹œ์Šคํ…œ์„ ๊นจ๋œจ๋ฆด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์—์„œ : โ€“ ๋ณดํ˜ธ๋œ ๊ฒฝ๊ณ„์—์„œ ๋ˆ„๊ตฐ๊ฐ€ ์„œ๋ฒ„๋ฅผ ์™„์ „ํžˆ ํŒŒ๊ดดํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์— ๋Œ€ํ•œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ํ”„๋กœํ† ์ฝœ์„ ์ƒ์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ์šด์ด ์ข‹์œผ๋ฉด ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€... ๊ทธ๋ ‡๊ฒŒ "์ข‹์€" ๊ฒƒ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์‚ฐ: โ€œ๊ทธ๋Ÿฐ ์–˜๊ธฐ๋Š” ๋“ค์–ด๋ณธ ์ ์ด ์—†์–ด์š”.โ€ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋น„๋ฐ€์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด๋ถ€์—์„œ ์‹คํŒจํ•˜๊ณ , ํ”„๋กœํ† ์ฝœ์—์„œ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ๋˜์–ด ๋ฉ”์‹œ์ง€์— ์ด์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ... ์‹ค์ œ๋กœ๋Š” ๊ณ„์† ํ™•์ธ๋˜๋ฏ€๋กœ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด์„œ๋Š” ์ด ์ธ์ฆ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋žต์ ์œผ๋กœ ๋งํ•˜๋ฉด ๊ทธ๋“ค์€ ๋ฒฝ ์ž์ฒด๋ฅผ ํŒŒ๊ดดํ–ˆ๊ณ  ๊ฑฐ๊ธฐ์— ์ฝ”๋ผ๋ฆฌ๋ฅผ ๋ฐ€์–ด ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ง“๋ฐŸํž ๊ฒƒ์ž…๋‹ˆ๋‹ค... ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜๋ฆฌ๊ณต์œผ๋กœ ์˜ท์„ ์ž…๊ณ  ์™€์„œ ๋Œ์–ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์—์„œ : โ€“ ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์„ธ๋ฅด๊ฒŒ์ด (Yandex). ๋ชฝ์—๋Š” Replica Set์˜ ํˆฌํ‘œ ๋ฉค๋ฒ„ ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ์ƒ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด ์ƒ์ˆ˜๋Š” 7(XNUMX)์ด๋‹ค. ์ด๊ฒƒ์ด ์™œ ์ƒ์ˆ˜์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด ์ผ์ข…์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์‚ฐ: โ€“ 40๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ๋ณต์ œ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ ๋‹ค์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฒ„์ „์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ...

์—์„œ : โ€“ Replica Set์—์„œ๋Š” ํˆฌํ‘œ๊ถŒ์ด ์—†๋Š” ํšŒ์›์„ ์šด์˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํˆฌํ‘œ ํšŒ์›์€ ์ตœ๋Œ€ 7๋ช…์ž…๋‹ˆ๋‹ค. Replica Set์ด 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ๊ฒฝ์šฐ ์ข…๋ฃŒ ์‹œ ์–ด๋–ป๊ฒŒ ์‚ด์•„๋‚จ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋Š” ์‰ฝ๊ฒŒ ๊บผ์งˆ ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฐ: โ€“ ์ด๋Š” ์ด๋ฏธ ๋ณด๊ณ ์„œ์˜ ๋ฒ”์œ„๋ฅผ ์กฐ๊ธˆ ๋ฒ—์–ด๋‚œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆด ์ˆ˜๋„ ์žˆ๊ฒ ๋„ค์š”.

HighLoad++, Mikhail Tyulenev(MongoDB): ์ธ๊ณผ์  ์ผ๊ด€์„ฑ: ์ด๋ก ์—์„œ ์‹ค์ œ๊นŒ์ง€

์ผ๋ถ€ ๊ด‘๊ณ  ๐Ÿ™‚

์šฐ๋ฆฌ์™€ ํ•จ๊ป˜์žˆ์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ธฐ์‚ฌ๊ฐ€ ๋งˆ์Œ์— ๋“œ์‹ญ๋‹ˆ๊นŒ? ๋” ์žฌ๋ฏธ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด? ์ฃผ๋ฌธํ•˜๊ฑฐ๋‚˜ ์นœ๊ตฌ์—๊ฒŒ ์ถ”์ฒœํ•˜์—ฌ ์šฐ๋ฆฌ๋ฅผ ์ง€์›ํ•˜์‹ญ์‹œ์˜ค. $4.99๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์šฉ ํด๋ผ์šฐ๋“œ VPS, ๊ท€ํ•˜๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๊ฐ€ ๋ฐœ๋ช…ํ•œ ๊ณ ์œ ํ•œ ๋ณด๊ธ‰ํ˜• ์„œ๋ฒ„ ์•„๋‚ ๋กœ๊ทธ: VPS(KVM) E5-2697 v3(6์ฝ”์–ด) 10GB DDR4 480GB SSD 1Gbps์— ๋Œ€ํ•œ ์ „์ฒด ์ง„์‹ค ๋˜๋Š” ์„œ๋ฒ„ ๊ณต์œ  ๋ฐฉ๋ฒ•์€? (RAID1 ๋ฐ RAID10์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ์ตœ๋Œ€ 24๊ฐœ ์ฝ”์–ด ๋ฐ ์ตœ๋Œ€ 40GB DDR4).

Dell R730xd๋Š” ์•”์Šคํ…Œ๋ฅด๋‹ด์˜ Equinix Tier IV ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ 2๋ฐฐ ๋” ์ €๋ ดํ•ฉ๋‹ˆ๊นŒ? ์—ฌ๊ธฐ์„œ ๋งŒ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV $199๋ถ€ํ„ฐ ๋„ค๋œ๋ž€๋“œ์—์„œ! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ์ตœ์ € $99! ์— ๋Œ€ํ•ด ์ฝ๋‹ค ์ธํ”„๋ผ ๊ณต์‚ฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•. 730ํŽ˜๋‹ˆ์— 5์œ ๋กœ ์ƒ๋‹น์˜ Dell R2650xd E4-9000 vXNUMX ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค?

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€