WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

Georgy Rylov์˜ 2020๋…„ ์ดˆ ๋ณด๊ณ ์„œ "WAL-G: ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ƒˆ๋กœ์šด ๊ธฐํšŒ์™€ ํ™•์žฅ"์˜ ๋…น์ทจ๋ก์„ ์ฝ์–ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค ๊ด€๋ฆฌ์ž๋Š” ์„ฑ์žฅํ•˜๋ฉด์„œ ๋งŽ์€ ์–ด๋ ค์›€์— ์ง๋ฉดํ•ฉ๋‹ˆ๋‹ค. ์ ์  ๋” ๋งŽ์€ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์„ ์ž‘์„ฑํ•˜๊ณ , ์ ์  ๋” ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ , ์ ์  ๋” ๋งŽ์€ ํ’€ ์š”์ฒญ์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? WAL-G(PostgreSQL์šฉ ๋ฐฑ์—… ๋„๊ตฌ)๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด ๋Œ€ํ•™์—์„œ ์˜คํ”ˆ ์†Œ์Šค ๊ฐœ๋ฐœ ๊ณผ์ •์„ ์‹œ์ž‘ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€, ์šฐ๋ฆฌ๊ฐ€ ๋‹ฌ์„ฑํ•œ ์„ฑ๊ณผ์™€ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

๋‹ค์‹œ ํ•œ๋ฒˆ ์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„! ์ €๋Š” ์˜ˆ์นดํ…Œ๋ฆฐ๋ถ€๋ฅดํฌ ์ถœ์‹ ์˜ Yandex ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ WAL-G์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ณด๊ณ ์„œ ์ œ๋ชฉ์—๋Š” ๋ฐฑ์—…์— ๊ด€ํ•œ ๋‚ด์šฉ์ด ๋‚˜์™€ ์žˆ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. WAL-G๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‚˜์š”? ์•„๋‹ˆ๋ฉด ๋‹ค๋“ค ์•Œ๊ณ  ๊ณ„์‹œ๋‚˜์š”? ๋ชจ๋ฅด์‹œ๋ฉด ์†์„ ๋“œ์„ธ์š”. ์  ์žฅ, ๋‹น์‹ ์€ ๋ณด๊ณ ์„œ์— ์™”๋Š”๋ฐ ๊ทธ๊ฒŒ ๋ฌด์Šจ ๋‚ด์šฉ์ธ์ง€ ๋ชจ๋ฅด์‹œ๋Š”๊ตฐ์š”.

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

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

์ด์ „ ์‹œ๋ฆฌ์ฆˆ์—๋Š” Andrei Borodin๊ณผ Vladimir Leskov์˜ ๋ณด๊ณ ์„œ๊ฐ€ ๋งŽ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ค‘ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ˆ˜๋…„ ๋™์•ˆ WAL-G์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ์™”์Šต๋‹ˆ๋‹ค.

clck.ru/F8ioz โ€” https://www.highload.ru/moscow/2018/abstracts/3964

clck.ru/Ln8Qw โ€” https://www.highload.ru/moscow/2019/abstracts/5981

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

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

๋ช‡ ๋…„ ์ „, WAL-G๋Š” Citus Data์—์„œ ์–ป์€ ์ƒ๋‹นํžˆ ์ž‘์€ ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๊ฐ€์ ธ๊ฐ”์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ํ•œ ์‚ฌ๋žŒ์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  WAL-G๋งŒ์ด ๋‹ค์Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค:

  • ๋ณต์ œ๋ณธ์—์„œ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฆ๋ถ„ ๋ฐฑ์—…์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  • WAL-Delta ๋ฐฑ์—…์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์•„์ง ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ๋งŽ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ ๋ช‡ ๋…„ ๋™์•ˆ WAL-G๋Š” ๋งŽ์ด ์„ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

๊ทธ๋ฆฌ๊ณ  2020๋…„์—๋Š” ์œ„์˜ ๋ชจ๋“  ์‚ฌํ•ญ์ด ์ด๋ฏธ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

  • GitHub์˜ ๋ณ„ํ‘œ๊ฐ€ 1๊ฐœ๊ฐ€ ๋„˜์Šต๋‹ˆ๋‹ค.
  • ํฌํฌ 150๊ฐœ.
  • ์•ฝ 15๊ฐœ์˜ ๊ณต๊ฐœ PR์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋” ๋งŽ์€ ๊ธฐ์—ฌ์ž๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ ์ด์Šˆ๋ฅผ ๊ณต๊ฐœํ•˜์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋งค์ผ ๊ทธ๊ณณ์— ๊ฐ€์„œ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ญ”๊ฐ€๋ฅผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ง์ž…๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” Yandex์˜ ๊ด€๋ฆฌํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์ด ํ”„๋กœ์ ํŠธ์— ๋” ๋งŽ์€ ๊ด€์‹ฌ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

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

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

ํ•™์ƒ PR์€ ์–ด๋–ค ์กฐ๊ฑด์—์„œ ์ธ์ •๋˜๋‚˜์š”?

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

์˜คํ”ˆ์†Œ์Šค ํŠน๋ณ„๊ฐ•์ขŒ

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

์ด๊ฒƒ์ด ์™œ ํ•„์š”ํ•œ์ง€, ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์™œ ๋ฉ‹์ง„ ์•„์ด๋””์–ด์ธ์ง€์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์ด์ต์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ์šฐ๋ฆฌ๋Š” ์ถ”๊ฐ€ ์†์„ ์–ป์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์Šค๋งˆํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋˜‘๋˜‘ํ•œ ํ•™์ƒ๋“ค ์ค‘์—์„œ ํŒ€์˜ ํ›„๋ณด์ž๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•™์ƒ๋“ค์—๊ฒŒ ์–ด๋–ค ํ˜œํƒ์ด ์žˆ๋‚˜์š”?

ํ•™์ƒ๋“ค์€ ์ตœ์†Œํ•œ ์ž์‹ ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋ˆ์„ ๋ฐ›์ง€ ์•Š๊ณ  ํ•™์ƒ ๊ธฐ๋ก์— ๋Œ€ํ•ด์„œ๋งŒ ์„ฑ์ ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋œ ๋ช…ํ™•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋“ค์—๊ฒŒ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์˜ ๋ง์— ๋”ฐ๋ฅด๋ฉด:

  • ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ์ž ๊ฒฝํ—˜.
  • ์ด๋ ฅ์„œ์— ํ•œ ์ค„์”ฉ ์ ์œผ์„ธ์š”.
  • ์ž์‹ ์„ ์ฆ๋ช…ํ•˜๊ณ  Yandex ์ธํ„ฐ๋ทฐ์— ํ•ฉ๊ฒฉํ•˜์„ธ์š”.
  • GSoC ํšŒ์›์ด ๋˜์„ธ์š”.
  • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ +1 ํŠน๋ณ„ ์ฝ”์Šค.

์ฝ”์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€๋Š” ์ด์•ผ๊ธฐํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. WAL-G๊ฐ€ ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ์˜€๋‹ค๊ณ ๋งŒ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—๋Š” Odyssey, PostgreSQL ๋ฐ ClickHouse์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋„ ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์€ ์ด ๊ณผ์ •์—์„œ๋งŒ ๋ฌธ์ œ๋ฅผ ๋‚ธ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์กธ์—…์žฅ๊ณผ ๊ต๊ณผ ๊ณผ์ •๋„ ๋‚˜๋ˆ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

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

๊ทธ๋ฆฌ๊ณ  ์˜ค๋žซ๋™์•ˆ ์›ํ•˜์…จ๋˜ ๊ฒƒ๊ณผ ์‹คํ˜„๋œ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. WAL-G์˜ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋Š” ์•„๋งˆ๋„ WAL-G ์ถœ์‹œ ์ดํ›„ ์˜ˆ์ƒ๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด WAL-G๋Š” ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—…์ด ์ง€์›๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฑ์—… ๋„๊ตฌ์ธ WAL-E์˜ ํ›„์†์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

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

ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋Š” Postgres ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์ด์ง€๋งŒ ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ ์™ธ๋ถ€์— ์œ„์น˜ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๊ฐ€ ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ ์™ธ๋ถ€์— ์œ„์น˜ํ•จ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

Postgres ์ž์ฒด์—์„œ๋Š” ์ด๊ฒƒ์ด ์–ด๋–ค ๋ชจ์Šต์ž…๋‹ˆ๊นŒ? ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” ๋ณ„๋„์˜ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ pg_tblspc๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ ์™ธ๋ถ€์— ์‹ค์ œ๋กœ Postgres ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋Œ€ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

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

์šฐ๋ฆฌ ํŒ€์—์„œ๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ WAL-G๋กœ ์ด๋™ํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ ํŽธ์ง€๋ฅผ ๋ณด๋‚ธ ๋‹ค๋ฅธ ๋งŽ์€ WAL-E ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ด๋กœ ์ธํ•ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด๊ฒƒ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

์šฐ๋ฆฌ์˜ ํŠน๋ณ„ ์ฝ”์Šค๊ฐ€ ๊ฐ€์ ธ์˜จ ๋˜ ๋‹ค๋ฅธ ํŠน์ง•์€ ๋”ฐ๋ผ์žก๊ธฐ์ž…๋‹ˆ๋‹ค. Postgres๋ณด๋‹ค Oracle๊ณผ ๋” ๋งŽ์ด ์ผํ•œ ์‚ฌ๋žŒ๋“ค์€ ๋”ฐ๋ผ์žก๊ธฐ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

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

๊ธฐํƒ€ ๊ธฐ์ง€

ํ•™์ƒ๋“ค์€ ๋˜ํ•œ ์šฐ๋ฆฌ์—๊ฒŒ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ํ•œ๊บผ๋ฒˆ์— ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. Yandex์—์„œ๋Š” Postgres๋ฟ๋งŒ ์•„๋‹ˆ๋ผ MySQL, MongoDB, Redis, ClickHouse๋„ ์š”๋ฆฌํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์‹œ์ ์—์„œ๋Š” MySQL์— ๋Œ€ํ•œ ํŠน์ • ์‹œ์  ๋ณต๊ตฌ๋ฅผ ํ†ตํ•ด ๋ฐฑ์—…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ–ˆ๊ณ  ์—…๋กœ๋“œํ•  ๊ธฐํšŒ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ๋กœ ์ด๋™ํ•˜์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” WAL-G์™€ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋ณด์ผ์ง€ ์‹คํ—˜ํ•˜๊ณ  ์•Œ์•„๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ฒ˜์Œ์—๋Š” ์ด ๋…ผ๋ฆฌ๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ๋“  ๊ณต์œ ํ•˜์ง€ ์•Š๊ณ  ํฌํฌ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์šฐ๋ฆฌ์—๊ฒŒ ์ผ์ข…์˜ ์ž‘๋™ ๋ชจ๋ธ์ด ์žˆ๊ณ  ๊ทธ๊ฒƒ์ด ๋‚  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์šฐ๋ฆฌ์˜ ์ฃผ์š” ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํฌ์ŠคํŠธ๊ทธ๋ ˆ์ŠคํŠธ์ด๊ณ  WAL-G๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ๋“  ์ด ๋ถ€๋ถ„๋“ค์„ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Postgres์šฉ ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•ด๋„ MySQL์ด ์†์ƒ๋˜์ง€ ์•Š์œผ๋ฉฐ, MySQL์„ ํŽธ์ง‘ํ•ด๋„ Postgres๊ฐ€ ์†์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

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

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

Postgres, MySQL, MongoDB, Redis๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋นŒ๋“œ

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

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

์ด๊ฒƒ์€ ํ•™์ƒ๋“ค์—๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ฃผ๊ธฐ ์ „์— ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ด ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ๊ทธ๋“ค์ด ์ž˜๋ชปํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋‚ซ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

๊ทธ ํ›„ ์šฐ๋ฆฌ๋Š” ๋ฌธ์ œ๋ฅผ ๋‚ด๋†“์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ฆ‰์‹œ ํ•ด์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์€ ์„ธ ๊ฐ€์ง€ ๊ธฐ์ง€๋ฅผ ์ง€์ง€ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ XNUMX๋…„ ๋„˜๊ฒŒ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ WAL-G๋ฅผ ์ด์šฉํ•ด ๋ฐฑ์—…ํ•ด ์˜จ MySQL์ด๋‹ค.

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

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

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

ํ•™์ƒ๋“ค์€ ๋˜ ๋ฌด์—‡์„ ๊ฐ€์ ธ์™”๋‚˜์š”? ๊ทธ๋“ค์€ WAL-G์— Libsodium ์•”ํ˜ธํ™” ์ง€์›์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

์ด ์‹คํ—˜์˜ ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ด์—ˆ๋‚˜์š”?

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

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

ํ˜„์žฌ ์ด ๊ณผ์ •์—์„œ ํ•™์ƒ๋“ค์€ ์•ฝ 14๊ฐœ์˜ ์ด์Šˆ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ 10๊ฐœ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ œ ์ƒ๊ฐ์—๋Š” ์ด๊ฒƒ์€ ํ•œ๋‘ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๋ฅผ ์™„์ „ํžˆ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡๋ณด๋‹ค๋„ ์šฐ๋ฆฌ๋Š” ์กธ์—…์žฅ๊ณผ ๊ต๊ณผ ๊ณผ์ •์„ ๋ฐœํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  12๋ช…์ด ์กธ์—…์žฅ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ 6๋ช…์€ ์ด๋ฏธ '5'๋ฅผ ๋ฐฉ์–ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚จ์€ ์‚ฌ๋žŒ๋“ค์€ ์•„์ง ๋ณดํ˜ธ๋ฅผ๋ฐ›์ง€ ๋ชปํ–ˆ์ง€๋งŒ ๊ทธ๋“ค์—๊ฒŒ๋„ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•ž์œผ๋กœ์˜ ๊ณ„ํš

์šฐ๋ฆฌ๋Š” ๋ฏธ๋ž˜์— ์–ด๋–ค ๊ณ„ํš์„ ๊ฐ–๊ณ  ์žˆ๋‚˜์š”?

์ตœ์†Œํ•œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ด๋ฏธ ๋“ฃ๊ณ  ์›ํ•˜๋Š” ๊ธฐ๋Šฅ ์š”์ฒญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ:

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

์—ฌ๊ธฐ์—์„œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ณด๊ณ ์„œ๋Š” ๋ฌด์—‡์„ ์œ„ํ•œ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๊นŒ? ๊ฒŒ๋‹ค๊ฐ€ ์ง€๊ธˆ์€ ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์›ํ•ด์ฃผ์‹œ๋Š” 4๋ช… ์™ธ์—๋„ ์ถ”๊ฐ€๋กœ ์†์ด ๋งŽ์ด ๊ฐ€์…”์„œ ๊ทธ ์ˆ˜๊ฐ€ ๊ฝค ๋งŽ์•„์š”. ํŠนํžˆ ๊ฐœ์ธ์ ์ธ ๋ฉ”์‹œ์ง€๋กœ ํŽธ์ง€๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜๊ณ  WAL-G๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ WAL-G๋กœ ์ด๋™ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์šฐ๋ฆฌ๋Š” ๊ท€ํ•˜์˜ ํฌ๋ง ์‚ฌํ•ญ์„ ๋งค์šฐ ์‰ฝ๊ฒŒ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

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

WAL-G: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ. ์กฐ์ง€ ๋ฆด๋กœํ”„

์งˆ๋ฌธ

์•ˆ๋…•ํ•˜์„ธ์š”! ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! WAL-G์— ๊ด€ํ•œ ์งˆ๋ฌธ์ด์ง€๋งŒ Postgres์— ๊ด€ํ•œ ์งˆ๋ฌธ์€ ์•„๋‹™๋‹ˆ๋‹ค. WAL-G๋Š” MySQL์„ ๋ฐฑ์—…ํ•˜๊ณ  ์ถ”๊ฐ€ ๋ฐฑ์—…์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. CentOS์— ์ตœ์‹  ์„ค์น˜๋ฅผ ํ•˜๊ณ  MySQL์„ yum ์„ค์น˜ํ•˜๋ฉด MariDB๊ฐ€ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ 10.3๋ถ€ํ„ฐ๋Š” ์ถ”๊ฐ€ ๋ฐฑ์—…์ด ์ง€์›๋˜์ง€ ์•Š๊ณ  MariDB ๋ฐฑ์—…์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด๊ฑฐ ์–ด๋•Œ์š”?

ํ˜„์žฌ๋กœ์„œ๋Š” MariDB ๋ฐฑ์—…์„ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. FoundationDB ์ง€์› ์š”์ฒญ์ด ์žˆ์—ˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋Ÿฌํ•œ ์š”์ฒญ์ด ์žˆ์œผ๋ฉด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์‚ฌ๋žŒ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๊ธธ์ง€๋„, ์–ด๋ ต์ง€๋„ ์•Š์•„์š”.

์ข‹์€ ์˜คํ›„์—์š” ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ž ์žฌ์ ์ธ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ…Œ์ดํ”„์— ๋ฐฑ์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก WAL-G๋ฅผ ํ…Œ์ดํ”„์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์…จ์Šต๋‹ˆ๊นŒ?

ํ…Œ์ดํ”„ ์Šคํ† ๋ฆฌ์ง€์— ๋ฐฑ์—…ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋„ค.

์ด ์งˆ๋ฌธ์— ๋‚˜๋ณด๋‹ค ๋” ์ž˜ ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์€ ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Andrei Borodin)์ด๋‹ค.

(์•ˆ๋“œ๋ ˆ์ด) ๋„ค, ์งˆ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€์—์„œ ํ…Œ์ดํ”„๋กœ ๋ฐฑ์—…์„ ์ „์†กํ•ด ๋‹ฌ๋ผ๋Š” ์š”์ฒญ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์œ„ํ•ด ์ œ์žฌ ํด๋ผ์šฐ๋“œ ๊ฐ„ ์ „์†ก. ํด๋ผ์šฐ๋“œ ๊ฐ„ ์ „์†ก์€ ํ…Œ์ดํ”„ ์ „์†ก์˜ ์ผ๋ฐ˜ํ™”๋œ ๋ฒ„์ „์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์Šคํ† ๋ฆฌ์ง€ ์ธก๋ฉด์—์„œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŽ์€ Storoges๋Š” ํ•™์ƒ๋“ค์ด ์ผ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ดํ”„์šฉ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋‹น์—ฐํžˆ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๊ณ ๋ คํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—์„œ ํŒŒ์ผ์„ ์“ฐ๊ณ  ํŒŒ์ผ์„ ์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Go์—์„œ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ 50์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด WAL-G์—์„œ ํ…Œ์ดํ”„๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

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

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

ํ•™์ƒ๋“ค์€ ๊ฒฝํ—˜์ด ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ† ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋‚˜์š”?

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

์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด์ „์— Andrey Borodin์€ WAL-G์˜ archive_command๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ช…์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ์ข…์˜ ํด๋Ÿฌ์Šคํ„ฐ ์นดํŠธ๋ฆฌ์ง€์˜ ๊ฒฝ์šฐ ์ƒคํ”„ํŠธ๋ฅผ ๋ณด๋‚ผ ๋…ธ๋“œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๋…ผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์„œ ๋‹น์‹ ์˜ ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ฐฑ์—…์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ๋™๊ธฐ์‹ ๋ณต์ œ๋ณธ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋ฌด์—‡์„?

(Andrey) ์‚ฌ์‹ค WAL-G๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์—†์ด ์‚ฌ์šฉ๋˜๋„๋ก ๊ณ ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋œ ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด WAL-G ๋‚ด๋ถ€์— ์žˆ์–ด์•ผ ํ•˜๋Š” ๋…ผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ณด๊ด€์ด ์–ด๋””์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋Š”์ง€์— ๊ด€ํ•ด์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ˜„์žฌ ๋งˆ์Šคํ„ฐ์—์„œ ๋ณด๊ด€์ด ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ์„ ๋ณด๊ด€ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ผ์ • ๋ฐ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

(์„ค๋ช…: ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—)

์ข‹์€ ์ €๋…์ด์—์š”! ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋ง์”€ํ•˜์‹  ์บ์น˜์—… ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ์ด ๋’ค์ณ์ ธ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์— ์ง๋ฉดํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  WAL-G ๋ฌธ์„œ์—์„œ๋Š” ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

Catchup์€ ๋ง ๊ทธ๋Œ€๋กœ 20๋…„ 2020์›” XNUMX์ผ์— ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ์— ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์Šค์Šค๋กœ ์ž‘์„ฑํ•˜์ง€๋งŒ ์•„์ฃผ ์ž˜ ์ž‘์„ฑํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” ํ•™์ƒ๋“ค์—๊ฒŒ ๊ทธ๊ฒƒ์„ ์“ฐ๋„๋ก ์š”๊ตฌํ•˜๊ธฐ ์‹œ์ž‘ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ ์ถœ์‹œ๋๋‚˜์š”?

๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์ด ์ด๋ฏธ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ด๊ฒƒ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ „ํˆฌ ์˜ˆ์‹œ์—์„œ ์ด๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์–ธ์ œ ์˜ˆ์ƒํ•˜๋‚˜์š”?

๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•œ๋‹ฌ๋งŒ ๊ธฐ๋‹ค๋ ค์ฃผ์‹œ๋ฉด ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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