WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

Andrey Borodin์˜ 2019๋…„ ์ดˆ ๋ณด๊ณ ์„œ "WAL-G๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?"๋ฅผ ์ฝ์–ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜์ œ๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ์ผ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐฑ์—… ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์›”์ง€. ์ผ๋ฐ˜์ ์œผ๋กœ Yandex์—์„œ๋Š” ์˜ค๋žซ๋™์•ˆ PostgreSQL์˜ ๋ฐฑ์—… ์‹œ์Šคํ…œ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๋ฐฑ์—… ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ผ๋ จ์˜ XNUMX๊ฐœ ๋ณด๊ณ ์„œ๋ฅผ ์ธํ„ฐ๋„ท์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งค๋…„ ๊ทธ๋“ค์€ ์กฐ๊ธˆ์”ฉ ๋ฐœ์ „ํ•˜๊ณ , ์กฐ๊ธˆ์”ฉ ๋ฐœ์ „ํ•˜๊ณ , ๋”์šฑ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์˜ค๋Š˜ ๋ณด๊ณ ์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•œ ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ๋‹จ์ˆœํ•˜๊ณ  ๋ฌด์—‡์ธ์ง€์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. WAL-G์— ๋Œ€ํ•œ ๋‚ด ๋ณด๊ณ ์„œ๋ฅผ ์ด๋ฏธ ๋ณธ ์‚ฌ๋žŒ์ด ๋ช‡ ๋ช…์ด๋‚˜ ๋ฉ๋‹ˆ๊นŒ? ๊ฝค ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ณด์ง€ ์•Š์€ ๊ฒƒ์ด ๋‹คํ–‰์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ฐ‘์ž๊ธฐ PostgreSQL ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์žˆ๊ณ  ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ช‡ ๊ฐœ ๊ฐ–๊ณ  ์žˆ๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ ์•„์ง ๋ฐฑ์—… ์‹œ์Šคํ…œ์ด ์—†๋‹ค๋ฉด S3 ์Šคํ† ๋ฆฌ์ง€๋‚˜ Google Cloud ํ˜ธํ™˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ตฌ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹น์‚ฌ ๋ถ€์Šค์— ์˜ค์…”์„œ S3์™€ ํ˜ธํ™˜๋˜๋Š” Yandex Object Storage์— ๋Œ€ํ•œ ํ”„๋กœ๋ชจ์…˜ ์ฝ”๋“œ๋ฅผ ๋ฐ›์œผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฒ„ํ‚ท์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์„œ๋น„์Šค ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์„œ๋น„์Šค ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ‚ค(aws-s3-key)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

WAL-G์˜ ์ตœ์‹  ์•ˆ์ • ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”.

์‚ฌ์ „ ๋ฆด๋ฆฌ์Šค๋Š” ๋ฆด๋ฆฌ์Šค์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๊นŒ? ์กฐ๊ธฐ ์„๋ฐฉํ•˜๋ผ๋Š” ์š”์ฒญ์„ ์ž์ฃผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„(์˜ˆ: ํ•œ ๋‹ฌ) ๋™์•ˆ ๋ฒ„์ „์— ๋ฒ„๊ทธ๊ฐ€ ์—†์œผ๋ฉด ๋ฆด๋ฆฌ์Šคํ•ฉ๋‹ˆ๋‹ค. XNUMX์›”์— ๋ฐœํ‘œ๋œ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋งค๋‹ฌ ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ์—์„œ ์ผ์ข…์˜ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์ง€๋งŒ ์•„์ง ๋ฆด๋ฆฌ์Šค๋ฅผ ์ถœ์‹œํ•˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์€ XNUMX์›”๋ฟ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ ์•Œ๋ ค์ง„ ๋ฒ„๊ทธ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง„ํ–‰๋˜๋ฉด์„œ ๋ฒ„๊ทธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฒซ ๋ฒˆ์งธ ๋ฐฑ์—…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. WAL-G์—์„œ "backup-push"๋ผ๊ณ  ๋งํ•˜๊ณ  WAL-G์—์„œ ํด๋Ÿฌ์Šคํ„ฐ์˜ pgdata ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ PostgreSQL์€ ๋ฐฑ์—… ์‹œ์Šคํ…œ์ด ์•„์ง ์—†๋Š” ๊ฒฝ์šฐ "์•„์นด์ด๋ธŒ ๋ชจ๋“œ"๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์•Œ๋ ค์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์ด๋Š” ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ "archive_mode = on"์„ ์ผœ๊ณ  WAL-G์˜ ํ•˜์œ„ ๋ช…๋ น์ด๊ธฐ๋„ ํ•œ "archive_command"๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ค ์ด์œ ๋กœ ์‚ฌ๋žŒ๋“ค์€ ์ข…์ข… ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ๋ง‰๋Œ€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  WAL-G๋ฅผ ๋‘˜๋Ÿฌ์Œ‰๋‹ˆ๋‹ค. ์ œ๋ฐœ ์ด๋Ÿฌ์ง€ ๋งˆ์„ธ์š”. WAL-G์— ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋ˆ„๋ฝ๋œ ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ๋‹ค์Œ ์ฃผ์†Œ๋กœ ํŽธ์ง€๋ฅผ ๋ณด๋‚ด์ฃผ์„ธ์š”. GitHub์˜. WAL-G๋Š” archive_command์—์„œ ์‹คํ–‰๋˜๋Š” ์œ ์ผํ•œ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์šฐ๋ฆฌ๋Š” Yandex ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์—์„œ ๊ณ ๊ฐ€์šฉ์„ฑ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ WAL-G๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜์˜ Master์™€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Replica๋กœ ๊ตฌ์„ฑ๋œ ํ† ํด๋กœ์ง€์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— Yandex Object Storage์— ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ ๋น„์Šทํ•œ ์ƒํ™ฉ. ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋งˆ์Šคํ„ฐ๋ฅผ ์ „ํ™˜ํ•œ ํ›„ ์ด์ „ ๋งˆ์Šคํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ PostgreSQL์—๋Š” ๋‹ค์–‘ํ•œ ์„ ํƒ ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋””์—์„œ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ž‘์€ ๊ธฐ๋Šฅ, ํ•˜๋‚˜์˜ ์ž‘์€ ๊ธฐ๋Šฅ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ทธ๋ฆฌ๊ณ  ๊ธฐ์กด ์‹œ์Šคํ…œ์„ ๊ฒ€ํ† ํ•œ ๊ฒฐ๊ณผ WAL-G๋ฅผ ๊ฐœ๋ฐœํ•˜๊ฒ ๋‹ค๋Š” ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋•Œ๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ์˜€์–ด์š”. ๋ฐฑ์—… ์‹œ์Šคํ…œ์˜ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๊ฐœ๋ฐœ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์‰ฌ์› ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์šฐ๋ฆฌ๊ฐ€ ๊ณ ์ˆ˜ํ•˜๋Š” ์ฃผ์š” ์ด๋…์€ WAL-G๊ฐ€ ๋ฐœ๋ž„๋ผ์ด์นด์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

WAL-G์—๋Š” 4๊ฐœ์˜ ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ:

WAL-PUSH - ์ƒคํ”„ํŠธ๋ฅผ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค.

WAL-FETCH - ์ƒคํ”„ํŠธ๋ฅผ ๊ตฌํ•˜์„ธ์š”.

BACKUP-PUSH โ€“ ๋ฐฑ์—…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

BACKUP-FETCH โ€“ ๋ฐฑ์—… ์‹œ์Šคํ…œ์—์„œ ๋ฐฑ์—…์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์‹ค์ œ๋กœ WAL-G๋Š” ์ด๋Ÿฌํ•œ ๋ฐฑ์—…์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ˜„์žฌ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋ก๊ณผ ๋ฐฑ์—…์„ ๊ธฐ๋ก์— ๋‚˜์—ดํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์šฐ๋ฆฌ์—๊ฒŒ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ๋ธํƒ€ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ๋ณ‘๋ ฌ์„ฑ์— ๋งŽ์€ ๊ด€์‹ฌ์ด ๊ธฐ์šธ์—ฌ์กŒ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ทธ๋Ÿฌ๋‚˜ PostgreSQL์˜ ์•„์นด์ด๋ธŒ API๋Š” ์ผ๊ด€์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. PostgreSQL์€ ํ•˜๋‚˜์˜ WAL ํŒŒ์ผ์„ ๋ณด๊ด€ํ•˜๊ณ  ๋ณต์› ์‹œ ํ•˜๋‚˜์˜ WAL ํŒŒ์ผ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ "WAL-FETCH" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ WAL ํŒŒ์ผ์„ ์š”์ฒญํ•˜๋ฉด "WAL-PREFETCH" ๋ช…๋ น์„ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ์ฒด ์ €์žฅ์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ๋‹ค์Œ 8๊ฐœ ํŒŒ์ผ์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

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

๋ธํƒ€ ํŒŒ์ผ์€ ํŠน์ • ๋ฒ”์œ„์˜ WAL ํŒŒ์ผ์„ ์„ค๋ช…ํ•˜๊ณ , ์ด WAL ๋ฒ”์œ„์—์„œ ์–ด๋–ค ๋ธ”๋ก์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋Ÿฌํ•œ ๋ธํƒ€ ํŒŒ์ผ๋„ ๋ณด๊ด€๋ฉ๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๋ถ€๋ถ„์„ _delta_partial ํŒŒ์ผ์— ๋„ฃ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ณผ๊ฑฐ๋กœ ๋Œ์•„๊ฐ€๋ฉด WAL ๋ ˆ์ฝ”๋“œ ์กฐ๊ฐ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ๋‹ค์Œ ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ์˜ ๋ชจ๋“  ๊ณ ํ†ต์€ WAL-G ๊ตฌ๋ฌธ ๋ถ„์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜คํ”ˆ ์†Œ์Šคํ™”ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์•„์ง ์•„๋ฌด๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์“ฐ๊ณ  ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ณต๊ฐœ ๋„๋ฉ”์ธ์— ์žˆ์Šต๋‹ˆ๋‹ค. (์—…๋ฐ์ดํŠธ๋œ ๋งํฌ https://github.com/wal-g/wal-g/tree/master/internal/walparser)

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ก์—์„œ ์–ด๋–ค ๋ธ”๋ก์ด ์–ธ์ œ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋” ๋‚˜์•„๊ฐ€ "pg_prefaulter"๋ผ๋Š” PostgreSQL ํ™•์žฅ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

์ด๊ฒƒ์ด ์ง€๊ธˆ ์ฝ”๋“œ์— ์žˆ๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์š”์ ์€ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณต์›ํ•  ๋•Œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋กค์—…ํ•ด์•ผ ํ•˜๋Š” ์Šคํ† ๋ฆฌ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, PostgreSQL์ด ๋กค๋งํ•˜๋Š” WAL์˜ ์–‘์€ ์ƒ๋‹นํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ค„์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๋Š” ์ด ๊ธฐ์ˆ ์„ ํŽ˜์ด์ง€ ์ˆ˜์ค€์œผ๋กœ ํ™•์žฅํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํŒŒ์ผ์˜ ์ผ๋ถ€๊ฐ€ ์›”์š”์ผ์— ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ ์ˆ˜์š”์ผ์— ๋ฎ์–ด์“ฐ๊ฒŒ ๋˜๋ฉด ๋ชฉ์š”์ผ์— ํŠน์ • ์ง€์ ์œผ๋กœ ๋ณต์›ํ•  ๋•Œ ํŽ˜์ด์ง€์˜ ์ฒ˜์Œ ๋ช‡ ๋ฒ„์ „์„ ๋””์Šคํฌ์— ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋Š” ์•„์ง ์šฐ๋ฆฌ ๋‚ด๋ถ€์—์„œ ํ™œ๋ฐœํ•˜๊ฒŒ ๋…ผ์˜๋˜๊ณ  ์žˆ๋Š” ์•„์ด๋””์–ด์ด์ง€๋งŒ, ์•„์ง ์ฝ”๋“œ์—๋Š” ๋„๋‹ฌํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

๊ทธ๋ฆฌ๊ณ  ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, MySQL ๋ณต์› ์ค‘์— ์ด๋Ÿฌํ•œ ํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์‹œ์Šคํ…œ์— ์•Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ณต์› ๋ช…๋ น์ด ์—†์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ์žฌ๊ตฌ์ถ•์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์–ด๋–ค ํŒŒ์ผ์ด ํ•„์š”ํ•œ์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํŒŒ์ผ์ด ํ•„์š”ํ• ์ง€ ์Šค์Šค๋กœ ์ถ”์ธกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ์–ด๋–ป๊ฒŒ๋“  ํšŒํ”ผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์„ค๋ช…: MySQL์€ ์ด๋ฏธ ์ง€์›๋ฉ๋‹ˆ๋‹ค.)

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๋ณด๊ณ ์„œ์—์„œ๋Š” WAL-G๊ฐ€ ๊ท€ํ•˜์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ๋„ ์ด์•ผ๊ธฐํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

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

์—ฌ๊ธฐ์„œ WAL-G ์ธก์—์„œ ๋ฌด์—‡์„ ์ˆ˜์ •ํ• ๊นŒ์š”? ์šฐ๋ฆฌ๋Š” ์ด ํŒŒ์ผ์ด ๋ณ‘๋ ฌ๋กœ ์ „์†ก๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ PostgreSQL์— ์•Œ๋ฆฌ์ง€ ์•Š์„ ๊ฒƒ์ด๋ฉฐ, PostgreSQL์ด ์šฐ๋ฆฌ์—๊ฒŒ ํŒŒ์ผ์„ ๋ณด๊ด€ํ•˜๋ผ๊ณ  ์š”์ฒญํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ์ด ๋ชจ๋“œ ์‹œ๊ฐ„๊ณผ ์ด md5๋ฅผ ๊ฐ€์ง„ ํŒŒ์ผ์ด ์ด๋ฏธ ๋ณด๊ด€๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋ฉฐ ๊ฐ„๋‹จํ•˜๊ฒŒ PostgreSQL -์ด๋ผ๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž, ๋ณธ์งˆ์ ์œผ๋กœ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ ๋„ ๋ชจ๋“  ๊ฒƒ์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” WAL-E ์ธก์—์„œ ํ•ด๊ฒฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ WAL-G์™€ WAL-E ๋ชจ๋‘์—์„œ ํŒŒ์ผ์„ ๋ณด๊ด€ํ•˜๋Š” ๋ณด๊ด€ ๋ช…๋ น์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ํ˜„์žฌ WAL-G๊ฐ€ ๊ท€ํ•˜์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ์ˆ˜์ •ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜์ฒซ์งธ, ํ˜„์žฌ ๋ฐฑ์—… ํ™•์ธ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—…์ด๋‚˜ ๋ณต๊ตฌ ์ค‘์—๋Š” ๊ฒ€์ฆ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๋Š” ํด๋ผ์šฐ๋“œ์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๋‹จ์ˆœํžˆ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณต์›ํ•˜์—ฌ ์‚ฌ์ „ ํ™•์ธ๋งŒ์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™•์ธ์„ ํ†ตํ•ด WAL-G์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณต์›ํ•˜๊ณ  ์‹œ์ž‘ํ•˜๊ณ  ์—ฐ๊ธฐ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. pg_dumpall์—์„œ /dev/null๋กœ, amcheck ์ธ๋ฑ์Šค ํ™•์ธ์ž…๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

ํ˜„์žฌ WAL-G์—๋Š” WAL์—์„œ ํ•˜๋‚˜์˜ ๋ฐฑ์—…์„ ์—ฐ๊ธฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๋Š” ์ผ๋ถ€ ์ฐฝ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ง€๋‚œ XNUMX์ผ ๋™์•ˆ์˜ ์ €์žฅ, ์ตœ๊ทผ XNUMX๊ฐœ์˜ ๋ฐฑ์—… ์ €์žฅ, ์ตœ๊ทผ XNUMX๊ฐœ์˜ ์ „์ฒด ๋ฐฑ์—… ์ €์žฅ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฝค ์ž์ฃผ ์‚ฌ๋žŒ๋“ค์ด ์™€์„œ ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. "์ƒˆํ•ด์— ์ผ์–ด๋‚œ ์ผ์— ๋Œ€ํ•œ ๋ฐฑ์—…์ด ํ•„์š”ํ•˜๋ฉฐ ์˜์›ํžˆ ๋ณด๊ด€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค." WAL-G๋Š” ์•„์ง ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. (์ฐธ๊ณ  - ์ด ๋ฌธ์ œ๋Š” ์ด๋ฏธ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ - ๋ฐฑ์—… ํ‘œ์‹œ ์˜ต์…˜ https://github.com/wal-g/wal-g/blob/master/PostgreSQL.md)

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ทธ๋ฆฌ๊ณ  PITR์„ ๊ฒ€์ฆํ•  ๋•Œ ๋ชจ๋“  ์ƒคํ”„ํŠธ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ํŽ˜์ด์ง€ ์ฒดํฌ์„ฌ ๋ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์ด ๋ชจ๋“  ๊ฒƒ์—์„œ ๋‚˜๋Š” Google Summer of Code ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. Go๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ฌธ์ž "G"๊ฐ€ ์žˆ๋Š” ํšŒ์‚ฌ๋กœ๋ถ€ํ„ฐ ์ˆ˜์ฒœ ๋‹ฌ๋Ÿฌ๋ฅผ ๋ฐ›๊ณ  ์‹ถ์€ ๋˜‘๋˜‘ํ•œ ํ•™์ƒ๋“ค์„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ๋“ค์—๊ฒŒ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”์ฒœํ•˜์„ธ์š”. ์ €๋Š” ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ฉ˜ํ†  ์—ญํ• ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•™์ƒ์ด ์—†์œผ๋ฉด ์—ฌ๋ฆ„์— ์ œ๊ฐ€ ์ง์ ‘ ๊ฐ€์ ธ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ ์ฐจ์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๋งŽ์€ ์ž‘์€ ๋ฌธ์ œ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฝค ์ด์ƒํ•œ ์ผ๋“ค์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

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

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

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

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

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

Yandex ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์—๋Š” ์ฒœ ๊ฐœ๊ฐ€ ๋„˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ WAL-G๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งค์ผ ์ˆ˜๋ฐฑ ํ…Œ๋ผ๋ฐ”์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์ฝ”๋“œ์—๋Š” TODO๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์˜ค์„ธ์š”. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์™€ ์งˆ๋ฌธ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—…. 2019๋…„์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜

์งˆ๋ฌธ

์ข‹์€ ์ €๋…์ด์—์š”! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚ด ์ƒ๊ฐ์—๋Š” WAL-delta๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์•„๋งˆ๋„ ์ „์ฒด ํŽ˜์ด์ง€ ์“ฐ๊ธฐ์— ํฌ๊ฒŒ ์˜์กดํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๊นŒ? ์•„๋ฆ„๋‹ค์šด ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด์—ฌ์ฃผ์…จ๋„ค์š”. FPW๋ฅผ ๋„๋ฉด ์–ผ๋งˆ๋‚˜ ๋” ์•„๋ฆ„๋‹ค์›Œ์งˆ๊นŒ์š”?

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

์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์งˆ๋ฌธ์€ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

์šฐ๋ฆฌ๋Š” ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” SSD ๋ฐ NMVE ๋””์Šคํฌ์— ์žˆ์œผ๋ฏ€๋กœ ์ด ๊ธฐ๋Šฅ์€ ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๊ธˆ ๋‹น์žฅ์€ ๊ทธ ์ผ์„ ์ž˜ํ•˜๊ธฐ ์œ„ํ•ด ์ง„์ง€ํ•œ ์‹œ๊ฐ„์„ ๋ณด๋‚ผ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ด๊ฒƒ์„ ์ง€์ง€ํ•  ๊ฒƒ์„ ์ง„์‹ฌ์œผ๋กœ ์˜นํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์ง€์ง€ํ•˜์‹œ๋Š” ๋ถ„๋“ค๋„ ๊ณ„์‹œ์ง€๋งŒ, ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง€์ง€ํ•ด ์ฃผ์…จ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํฌํฌ๋ฅผ ๋งŒ๋“ค์—ˆ์ง€๋งŒ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (๋ฒ„์ „ 0.2.13์— ์ถ”๊ฐ€๋จ)

๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ ์งˆ๋ฌธ. ์ฒ˜์Œ์— WAL-G๋Š” ๋‹จ๋…์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ ๋ž˜ํผ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ๋‹ค๊ณ  ๋ง์”€ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ž˜ํผ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์™œ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋‚˜์š”?

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

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

GitHub์—์„œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๊ณ  ์•Œ์•„๋ด…์‹œ๋‹ค.

์ฆ‰, ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ?

WAL-G๊ฐ€ ํ•ด๋‹น ํŒŒ์ผ์ด ์–ด๋–ค ์ข…๋ฅ˜์˜ ํŒŒ์ผ์ธ์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•  ๋•Œ "์•”ํ˜ธํ™”๋œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ๋‚˜์š”?"๋ผ๊ณ  ๋ฌป๋Š” ์˜ค๋ฅ˜ ๋ณด๊ณ ์„œ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋ฌธ์ œ๋Š” ์•”ํ˜ธํ™”๊ฐ€ ์ „ํ˜€ ์•„๋‹ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ๋กœ๊น…์„ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๊ทธ๊ฒƒ์„ ํ•ด๋…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ณต๊ฐœ ํ‚ค์™€ ๊ฐœ์ธ ํ‚ค๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ ์‹œ์Šคํ…œ์ด ๊ตฌ์„ฑ๋˜๋Š” ๋ฐฉ์‹์ด ๋ณ„๋กœ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์—์„œ ํ˜„์žฌ ์ด ์ฃผ์ œ๋ฅผ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ GPG๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ‚ค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ํ‚ค๋ฅผ ๊ฐ€์ ธ์™€ WAL-G ๋‚ด๋ถ€์—์„œ ์ปดํŒŒ์ผ๋œ ๊ณต๊ฐœ PGP์ธ ๋‚ด๋ถ€ GPG๋กœ ์ „์†กํ•˜๊ณ  ๊ฑฐ๊ธฐ์„œ ์•”ํ˜ธํ™”๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ์šฐ๋ฆฌ๋Š” ์‹œ์Šคํ…œ์„ ๊ฐœ์„ ํ•˜๊ณ  Libsodium ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค(๋ฒ„์ „ 0.2.15์— ์ถ”๊ฐ€๋จ). ๋ฌผ๋ก  ํ•ด๋…์ด ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•Œ์•„๋ด…์‹œ๋‹ค. ๋ช‡ ๋‹จ์–ด๋ณด๋‹ค ๋” ๋งŽ์€ ์ฆ์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋” ๋ฐœํ‘œ์ž์‹ค์— ๋ชจ์—ฌ์„œ ์‹œ์Šคํ…œ์„ ์‚ดํŽด๋ณด์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. (์™ธ๋ถ€ GPG ์—†์ด PGP ์•”ํ˜ธํ™” - v0.2.9)

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

์ง€๊ธˆ์€ ์กด์žฌํ•˜์ง€ ์•Š์ง€๋งŒ ํฅ๋ฏธ๋กœ์šด ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.

์ €๋Š” ๋‹จ์ง€ ํ•œ ์ œ๊ณต์ž๋ฅผ ์‹ ๋ขฐํ•˜์ง€ ์•Š๊ณ  ๋งŒ์•ฝ์„ ๋Œ€๋น„ํ•ด ๋‹ค๋ฅธ ์ œ๊ณต์ž๋ฅผ ์‹ ๋ขฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์•„์ด๋””์–ด๋Š” ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ ์ด๊ฒƒ์€ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „ํ˜€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด GitHub์— ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์–ด ๋‹ฌ๋ผ๊ณ  ๋ถ€ํƒํ•ด๋„ ๋ ๊นŒ์š”?

๋„ค, ๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•™์ƒ๋“ค์ด Google Summer of Code์— ์˜ค๋ฉด ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋” ๋งŽ์€ ๊ฒƒ์„ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

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

SLA๊ฐ€ ์—†๋‚˜์š”? ๊ทธ๋“ค์ด ์–ด๋–ป๊ฒŒ ๊ณ ํ†ต์„ ๋ฐ›๋Š”์ง€ ๊ธฐ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์š”์ ์€ ์ด ์งˆ๋ฌธ์„ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ๋Œ€๊ฐœ ์ž์‹ ๋งŒ์˜ ๊ธˆ๊ณ ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, Amazon์ด๋‚˜ Google Cloud, Yandex Object Storage ์ถœ์‹ ์€ ์•„๋ฌด๋„ ์—†์Šต๋‹ˆ๋‹ค.

์–ด์ฉŒ๋ฉด ๊ทธ ์งˆ๋ฌธ์ด ๋” ์ด์ƒ ๋‹น์‹ ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ๋‚˜์š”?

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

์ด๊ฒƒ์€ ๋ฉ”์ผ ํด๋ผ์šฐ๋“œ์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

๋ณต์ œํ’ˆ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด...

๊พธ์ค€ํžˆ ์žฌ์ƒ์‚ฐ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค..

์žฌํ˜„์ด ์žˆ๋‹ค๋ฉด ์žฌ์‹œ๋„ ์ „๋žต์„ ์‹คํ—˜ํ•˜๊ณ  ์žฌ์‹œ๋„ ๋ฐฉ๋ฒ•์„ ํŒŒ์•…ํ•˜๊ณ  ํด๋ผ์šฐ๋“œ๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์„ธ ๊ฐœ์˜ ์—ฐ๊ฒฐ์ด ์•ˆ์ •์ ์ด๊ณ  ์—ฐ๊ฒฐ์„ ๋Š์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ ์„ธ ๊ฐœ์— ๋„๋‹ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์—ฐ๊ฒฐ์„ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๋Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, 16๊ฐœ ์Šค๋ ˆ๋“œ๋กœ ๋ณต๊ตฌ๋ฅผ ์‹œ์ž‘ํ•œ ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ์žฌ์‹œ๋„ ํ›„์—๋Š” 8๊ฐœ ์Šค๋ ˆ๋“œ, 4๊ฐœ ์Šค๋ ˆ๋“œ, 2๊ฐœ ์Šค๋ ˆ๋“œ ๋ฐ 7,5๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. 7,5 ์Šค๋ ˆ๋“œ๊ฐ€ ํŽŒํ•‘ํ•˜๊ธฐ์— ๊ฐ€์žฅ ์ข‹์€ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ๋งˆ๋ฒ•์˜ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด, ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์— ๋จธ๋ฌผ๋ฉด์„œ ๋˜ ๋‹ค๋ฅธ XNUMX ์Šค๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์ฆ‰, WAL-G๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ๋ฐฑ์—…์„ ์‹œ๋„ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, ์šฐ๋ฆฌ๋Š” WAL-G๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ ์ •์ฑ…์ด ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ธํƒ€๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋žต์ ์œผ๋กœ ๋งํ•˜๋ฉด, ๋งค๋ฒˆ XNUMX์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด pg_basebackup์ฒ˜๋Ÿผ ๋™์ž‘ํ• ๊นŒ์š”?

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

Pg_basebackup์€ ์ƒคํ”„ํŠธ ์—†์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด CephFS์—์„œ. ๋ชจ๋“  ์‚ฌ๋žŒ์ด Object Storage๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์‹ถ์–ดํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋„ค, ์•„๋งˆ๋„ ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์งˆ๋ฌธ์„ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค.

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

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

์•ˆ๋…•ํ•˜์„ธ์š”, ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์•Œ๊ธฐ๋กœ๋Š” WAL-G๋Š” ๋ฐ”ํ…๋”์™€ ๊ฐ™์€ ์ผ์ข…์˜ ์ค‘์•™ ์ง‘์ค‘์‹ ์‹œ์Šคํ…œ์ด ์•„๋‹Œ๊ฐ€์š”? ์ด ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ผ ๊ณ„ํš์ด์‹ ๊ฐ€์š”?

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

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

P.S ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 0.2.15, ๊ธฐ๋ณธ์ ์œผ๋กœ postgres ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” .walg.json ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Bash ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํฌ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ˜ธ์—๋Š” .walg.json ์˜ˆ์ œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/wal-g/wal-g/issues/545

๋น„๋””์˜ค :



์ถœ์ฒ˜ : habr.com

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