Andrey Borodin์ 2019๋ ์ด ๋ณด๊ณ ์ "WAL-G๋ฅผ ์ฌ์ฉํ ๋ฐฑ์ . 2019๋ ์๋ ๋ฌด์์ด ์์๊น์?"๋ฅผ ์ฝ์ด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ! ๋ด ์ด๋ฆ์ ์๋๋ ์ด ๋ณด๋ก๋์ ๋๋ค. ์ ๋ Yandex์ ๊ฐ๋ฐ์์ ๋๋ค. ์ ๋ 2016๋ ๋ถํฐ PostgreSQL์ ๊ด์ฌ์ ๊ฐ๊ณ ์์์ต๋๋ค. ๊ฐ๋ฐ์๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋ ํ ๊ทธ๋ค์ ๋ชจ๋ ๊ฒ์ด ๊ฐ๋จํ๋ค๊ณ ๋งํ์ต๋๋ค. ์์ค ์ฝ๋๋ฅผ ๊ฐ์ ธ์ ๋น๋ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ๋ ๊ฒ์ ๋๋ค. ๊ทธ ์ดํ๋ก ์ ๋ ๋ฉ์ถ ์ ์์์ต๋๋ค. ์ ๋ ์จ๊ฐ ์ข ๋ฅ์ ๊ธ์ ์ผ์ต๋๋ค.
์ ๊ฐ ํ๊ณ ์๋ ์ผ ์ค ํ๋๋ ๋ฐฑ์
์์คํ
์
๋๋ค.
ํ์ง๋ง ์ค๋ ๋ณด๊ณ ์๋ ์ฐ๋ฆฌ๊ฐ ํ ์ผ๋ฟ๋ง ์๋๋ผ ๊ทธ๊ฒ์ด ์ผ๋ง๋ ๋จ์ํ๊ณ ๋ฌด์์ธ์ง์ ๊ดํ ๊ฒ์ ๋๋ค. WAL-G์ ๋ํ ๋ด ๋ณด๊ณ ์๋ฅผ ์ด๋ฏธ ๋ณธ ์ฌ๋์ด ๋ช ๋ช ์ด๋ ๋ฉ๋๊น? ๊ฝค ๋ง์ ์ฌ๋๋ค์ด ๋ณด์ง ์์ ๊ฒ์ด ๋คํ์ ๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๊ฒ๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค.
๊ฐ์๊ธฐ PostgreSQL ํด๋ฌ์คํฐ๊ฐ ์๊ณ ๋ชจ๋ ์ฌ๋์ด ํด๋ฌ์คํฐ๋ฅผ ๋ช ๊ฐ ๊ฐ๊ณ ์๋๋ฐ ๊ฐ์๊ธฐ ์์ง ๋ฐฑ์ ์์คํ ์ด ์๋ค๋ฉด S3 ์คํ ๋ฆฌ์ง๋ Google Cloud ํธํ ์คํ ๋ฆฌ์ง๋ฅผ ๊ตฌ์ ํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋น์ฌ ๋ถ์ค์ ์ค์ ์ S3์ ํธํ๋๋ Yandex Object Storage์ ๋ํ ํ๋ก๋ชจ์ ์ฝ๋๋ฅผ ๋ฐ์ผ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ฒํท์ ์์ฑํฉ๋๋ค. ๊ทธ๊ฒ์ ๋จ์ง ์ ๋ณด๋ฅผ ๋ด๋ ๊ทธ๋ฆ์ผ ๋ฟ์ ๋๋ค.
์๋น์ค ์ฌ์ฉ์๋ฅผ ์์ฑํฉ๋๋ค.
์๋น์ค ์ฌ์ฉ์์ ๋ํ ์ก์ธ์ค ํค(aws-s3-key)๋ฅผ ์์ฑํฉ๋๋ค.
WAL-G์ ์ต์ ์์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
์ฌ์ ๋ฆด๋ฆฌ์ค๋ ๋ฆด๋ฆฌ์ค์ ์ด๋ป๊ฒ ๋ค๋ฆ ๋๊น? ์กฐ๊ธฐ ์๋ฐฉํ๋ผ๋ ์์ฒญ์ ์์ฃผ ๋ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ถฉ๋ถํ ์๊ฐ(์: ํ ๋ฌ) ๋์ ๋ฒ์ ์ ๋ฒ๊ทธ๊ฐ ์์ผ๋ฉด ๋ฆด๋ฆฌ์คํฉ๋๋ค. XNUMX์์ ๋ฐํ๋ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด๋ ๋งค๋ฌ ์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ค์ํ์ง ์์ ๊ธฐ๋ฅ์์ ์ผ์ข ์ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ์ง๋ง ์์ง ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ์ง ์์์์ ์๋ฏธํฉ๋๋ค. ์ด์ ๋ฒ์ ์ XNUMX์๋ฟ์ ๋๋ค. ์ฐ๋ฆฌ์๊ฒ ์๋ ค์ง ๋ฒ๊ทธ๋ ์์ต๋๋ค. ์ฆ, ํ๋ก์ ํธ๊ฐ ์งํ๋๋ฉด์ ๋ฒ๊ทธ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
WAL-G๋ฅผ ๋ค์ด๋ก๋ํ ํ์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ ๋ฌํ์ฌ ๊ฐ๋จํ "๋ฐฑ์ ๋ชฉ๋ก" ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Object Storage์ ์ฐ๊ฒฐํ์ฌ ์ด๋ค ๋ฐฑ์ ์ด ์๋์ง ์๋ ค์ค๋๋ค. ๋ฌผ๋ก ์ฒ์์๋ ๋ฐฑ์ ์ด ์์ด์ผ ํฉ๋๋ค. ์ด ์ฌ๋ผ์ด๋์ ์์ ์ ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๊ฐ๋จํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ๋๋ค. ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฐ์๋ค์ด๊ณ ํ์ ๋ช ๋ น์ ์คํํ๋ ์ฝ์ ๋ช ๋ น์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ฒซ ๋ฒ์งธ ๋ฐฑ์ ์ ๋ง๋ค ์ ์์ต๋๋ค. WAL-G์์ "backup-push"๋ผ๊ณ ๋งํ๊ณ WAL-G์์ ํด๋ฌ์คํฐ์ pgdata ์์น๋ฅผ ์ง์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ง๋ PostgreSQL์ ๋ฐฑ์ ์์คํ ์ด ์์ง ์๋ ๊ฒฝ์ฐ "์์นด์ด๋ธ ๋ชจ๋"๋ฅผ ํ์ฑํํด์ผ ํ๋ค๊ณ ์๋ ค์ค ๊ฒ์ ๋๋ค.
์ด๋ ์ค์ ์ผ๋ก ์ด๋ํ์ฌ "archive_mode = on"์ ์ผ๊ณ WAL-G์ ํ์ ๋ช
๋ น์ด๊ธฐ๋ ํ "archive_command"๋ฅผ ์ถ๊ฐํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ์ด์ ๋ก ์ฌ๋๋ค์ ์ข
์ข
์ด ์ฃผ์ ์ ๋ํด ๋ง๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ณ WAL-G๋ฅผ ๋๋ฌ์๋๋ค. ์ ๋ฐ ์ด๋ฌ์ง ๋ง์ธ์. WAL-G์ ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ธ์. ๋๋ฝ๋ ๋ด์ฉ์ด ์์ผ๋ฉด ๋ค์ ์ฃผ์๋ก ํธ์ง๋ฅผ ๋ณด๋ด์ฃผ์ธ์.
์ฐ๋ฆฌ๋ Yandex ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์์ ๊ณ ๊ฐ์ฉ์ฑ ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฃผ๋ก WAL-G๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ํ๋์ Master์ ์ฌ๋ฌ ๊ฐ์ Replica๋ก ๊ตฌ์ฑ๋ ํ ํด๋ก์ง์์ ์ฌ์ฉ๋ฉ๋๋ค. ๋์์ Yandex Object Storage์ ๋ฐฑ์ ๋ณต์ฌ๋ณธ์ ๋ง๋ญ๋๋ค.
๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์๋๋ฆฌ์ค๋ ํน์ ์์ ๋ณต๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ๋ณต์ฌ๋ณธ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ ๋ฐฑ์ ์์คํ ์ ์ฑ๋ฅ์ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ต๋๋ค. ๋ฐฑ์ ์์ ์ ํด๋ฌ์คํฐ๋ฅผ ์ ๋ก๋ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ ๋๋ ์์คํ ์ฑ๋ฅ์ ๋ฐฑ์ ํด์ผ ํฉ๋๋ค. ์ ์ค์ ํจ? ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋๋ค์ ๊ธฐ์กด ํด๋ฌ์คํฐ๊ฐ ์ฝ๊ธฐ ๋ก๋๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ํด๋ฌ์คํฐ์ ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ ๋ณต์ ๋ณธ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. pg_basebackup์ ๋ก๋๋ฅผ ๋ง์คํฐ์ ์ถ๊ฐํ๋ฉด ๋ง์คํฐ๊ฐ ๋ฌด๋์ง ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ง์คํฐ์ ๋ํ ๋ถํ๋ฅผ ์ต์ํํ๋ฉด์ ์์นด์ด๋ธ์์ ์ ๋ ธ๋๋ฅผ ์ ์ํ๊ฒ ์ ๋ก๋ํ ์ ์๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๋ค๋ฅธ ๋น์ทํ ์ํฉ. ์ฐ๊ฒฐ์ด ๋์ด์ง ๋ฐ์ดํฐ ์ผํฐ์์ ํด๋ฌ์คํฐ ๋ง์คํฐ๋ฅผ ์ ํํ ํ ์ด์ ๋ง์คํฐ๋ฅผ ๋ค์ ์์ํด์ผ ํฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ณต์ฌ ์์คํ ์ ๋ํ ์๊ตฌ ์ฌํญ์ ๊ณต์ํํ ๋ pg_basebackup์ด ํด๋ผ์ฐ๋์์ ์๋ํ ๋ ์ ํฉํ์ง ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
- ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ์์ถํ ์ ์๊ธฐ๋ฅผ ์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ ๊ฒ ์ด์ธ์ ๊ฑฐ์ ๋ชจ๋ ๋ฐฑ์ ์์คํ ์ ๋ฐ์ดํฐ ์์ถ์ ์ ๊ณตํฉ๋๋ค.
- ํด๋ผ์ฐ๋ ์ฌ์ฉ์๊ฐ ๋๋์ ํ๋ก์ธ์ ์ฝ์ด๋ฅผ ๊ตฌ์ ํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ฒ์ ๋ณ๋ ฌํํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ถ ์์ ์ ๋ณ๋ ฌ์ฑ์ด ์์ผ๋ฉด ๋ง์ ์์ ์ฝ์ด๊ฐ ์ธ๋ชจ ์๊ฒ ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ๊ฐ ์ฐ๋ฆฌ ๊ฒ์ด ์๋๊ณ ์ผ๋ฐ ํ ์คํธ๋ก ์ ์ฅํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ์ํธํ๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ WAL-G์ ๋ํ ์ฐ๋ฆฌ์ ๊ธฐ์ฌ๋ ์ํธํ์์ ์์๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ WAL-G์์ ์ํธํ๋ฅผ ์๋ฃํ ํ "์ฐ๋ฆฌ ์ค ํ ๋ช ์ด ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ ๊น์?"๋ผ๋ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. ๊ทธ ์ดํ๋ก ์ ๋ XNUMX๋ ๋๊ฒ WAL-G์ ํจ๊ป ์ผํด ์์ต๋๋ค.
- ๋ํ ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ๋ฉด์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋๋๋ก ์ฌ๋๋ค์ด ๋ฐค์ ์ค์ํ ์๋ฃํ์ ๋ก๋ํด์ผ ํ๋๋ฐ ์ด ๋ก๋๋ฅผ ๋ฐฉํดํ ์ ์๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์๊ธฐ ๋๋ฌธ์ ๋ฆฌ์์ค ์กฐ์ ๋ ํ์ํ์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ๋ฆฌ์์ค ์ ํ์ ์ถ๊ฐํ ์ด์ ์ ๋๋ค.
- ์์ฅ ๋ฐ ๊ด๋ฆฌ๋ ๊ฐ๋ฅํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๊ฒ์ฆ.
์ฐ๋ฆฌ๋ ๋ค์ํ ๋๊ตฌ๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ๋คํํ PostgreSQL์๋ ๋ค์ํ ์ ํ ํญ๋ชฉ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋์์๋ ์ฐ๋ฆฌ๋ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์์ต๋๋ค. ํ๋์ ์์ ๊ธฐ๋ฅ, ํ๋์ ์์ ๊ธฐ๋ฅ์ด์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ธฐ์กด ์์คํ ์ ๊ฒํ ํ ๊ฒฐ๊ณผ WAL-G๋ฅผ ๊ฐ๋ฐํ๊ฒ ๋ค๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค. ๊ทธ๋๋ ์๋ก์ด ํ๋ก์ ํธ์์ด์. ๋ฐฑ์ ์์คํ ์ ํด๋ผ์ฐ๋ ์ธํ๋ผ ๊ฐ๋ฐ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ๋งค์ฐ ์ฌ์ ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ณ ์ํ๋ ์ฃผ์ ์ด๋ ์ WAL-G๊ฐ ๋ฐ๋๋ผ์ด์นด์ฒ๋ผ ๋จ์ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
WAL-G์๋ 4๊ฐ์ ๋ช ๋ น์ด ์์ต๋๋ค. ์ด๊ฒ:
WAL-PUSH - ์คํํธ๋ฅผ ๋ณด๊ดํฉ๋๋ค.
WAL-FETCH - ์คํํธ๋ฅผ ๊ตฌํ์ธ์.
BACKUP-PUSH โ ๋ฐฑ์ ์ ๋ง๋ญ๋๋ค.
BACKUP-FETCH โ ๋ฐฑ์ ์์คํ ์์ ๋ฐฑ์ ์ ๊ฐ์ ธ์ต๋๋ค.
์ค์ ๋ก WAL-G๋ ์ด๋ฌํ ๋ฐฑ์ ์ ๊ด๋ฆฌํฉ๋๋ค. ์ฆ, ํ์ฌ ๋ ์ด์ ํ์ํ์ง ์์ ๊ธฐ๋ก๊ณผ ๋ฐฑ์ ์ ๊ธฐ๋ก์ ๋์ดํ๊ณ ์ญ์ ํ๋ ๊ธฐ๋ฅ๋ ์์ต๋๋ค.
์ฐ๋ฆฌ์๊ฒ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋๋ ๋ธํ ๋ณต์ฌ๋ณธ์ ์์ฑํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
๋ธํ ๋ณต์ฌ๋ณธ์ ์ ์ฒด ํด๋ฌ์คํฐ์ ์ ์ฒด ๋ฐฑ์ ์ ์์ฑํ์ง ์๊ณ ํด๋ฌ์คํฐ์์ ๋ณ๊ฒฝ๋ ํ์ผ์ ๋ณ๊ฒฝ๋ ํ์ด์ง๋ง ์์ฑํ๋ค๋ ์๋ฏธ์ ๋๋ค. ๊ธฐ๋ฅ์ ์ผ๋ก ์ด๋ WAL์ ์ฌ์ฉํ์ฌ ๋ณต๊ตฌํ๋ ๊ธฐ๋ฅ๊ณผ ๋งค์ฐ ์ ์ฌํด ๋ณด์ ๋๋ค. ํ์ง๋ง WAL ๋จ์ผ ์ค๋ ๋ ๋ธํ ๋ฐฑ์ ์ ๋ณ๋ ฌ๋ก ๋กค์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ ์์ผ์ ๊ธฐ๋ณธ ๋ฐฑ์ ์ ๋ง๋ค๊ณ ๋งค์ผ ๋ธํ ๋ฐฑ์ ์ ํ๊ณ ๋ชฉ์์ผ์ ์คํจํ๋ฉด 4๊ฐ์ ๋ธํ ๋ฐฑ์ ๊ณผ 10์๊ฐ์ WAL์ ๋กค์ ํด์ผ ํฉ๋๋ค. ๋ธํ ๋ฐฑ์ ์ด ๋ณ๋ ฌ๋ก ์งํ๋๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ๊ฐ์ ์๊ฐ์ด ์์๋ฉ๋๋ค.
LSN ๊ธฐ๋ฐ ๋ธํ - ์ด๋ ๋ฐฑ์ ์ ์์ฑํ ๋ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ดํดํ๊ธฐ ์ํด ๊ฐ ํ์ด์ง๋ฅผ ๊ฒฐํฉํ๊ณ ํด๋น LSN์ ์ด์ ๋ฐฑ์ ์ LSN๊ณผ ํ์ธํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฌ์ ์ผ๋ก ํฌํจํ ์ ์๋ ๋ชจ๋ ํ์ด์ง๊ฐ ๋ธํ ๋ฐฑ์ ์ ์์ด์ผ ํฉ๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด ๋ณ๋ ฌ์ฑ์ ๋ง์ ๊ด์ฌ์ด ๊ธฐ์ธ์ฌ์ก์ต๋๋ค.
๊ทธ๋ฌ๋ PostgreSQL์ ์์นด์ด๋ธ API๋ ์ผ๊ด์ฑ์ด ์์ต๋๋ค. PostgreSQL์ ํ๋์ WAL ํ์ผ์ ๋ณด๊ดํ๊ณ ๋ณต์ ์ ํ๋์ WAL ํ์ผ์ ์์ฒญํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ "WAL-FETCH" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ํ๋์ WAL ํ์ผ์ ์์ฒญํ๋ฉด "WAL-PREFETCH" ๋ช ๋ น์ ํธ์ถํ์ฌ ๊ฐ์ฒด ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ๋ก ๊ฐ์ ธ์ค๊ธฐ ์ํด ๋ค์ 8๊ฐ ํ์ผ์ ์ค๋นํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ๋์ ํ์ผ์ ๋ณด๊ดํ๋ผ๊ณ ์์ฒญํ๋ฉด archive_status๋ฅผ ๋ณด๊ณ ๋ค๋ฅธ WAL ํ์ผ์ด ์๋์ง ํ์ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ํ WAL์ ๋ณ๋ ฌ๋ก ๋ค์ด๋ก๋ํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ด๋ ์๋นํ ์ฑ๋ฅ ํฅ์์ ์ ๊ณตํ๊ณ ๋ณด๊ด๋์ง ์์ WAL ์์ ๊ฑฐ๋ฆฌ๋ฅผ ํฌ๊ฒ ์ค์ ๋๋ค. ๋ง์ ๋ฐฑ์ ์์คํ ๊ฐ๋ฐ์๋ PostgreSQL API๊ฐ ์๋ ์ฝ๋ ๋ด๋ถ ์ง์์ ์์กดํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋งค์ฐ ์ํํ ์์คํ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. PostgreSQL์ ์ฐ๋ฆฌ์๊ฒ archive_status ํด๋์ ์กด์ฌ๋ฅผ ๋ณด์ฅํ์ง ์์ผ๋ฉฐ WAL ํ์ผ์ ๋ํ ์ค๋น ์ ํธ์ ์๋ฏธ, ์กด์ฌ ์ฌ๋ถ๋ ๋ณด์ฅํ์ง ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฐ๋ฆฌ๋ ์์ค ์ฝ๋๋ฅผ ์ฐ๊ตฌํ๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ด ์ฌ์ค์์ ํ์ธํ๊ณ ์ด๋ฅผ ํ์ฉํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ PostgreSQL์ด ๊ฐ๋ฐ๋๋ ๋ฐฉํฅ์ ์ ์ดํ๋ฉฐ, ๊ฐ์๊ธฐ ์ด ๋ฉ์ปค๋์ฆ์ด ์ค๋จ๋๋ฉด ์ฌ์ฉ์ ์ค๋จํฉ๋๋ค.
์์ํ ํํ์ LSN ๊ธฐ๋ฐ WAL ๋ธํ์์๋ ์ด์ ๋ฐฑ์ ์ดํ ํ์ผ ์์คํ ์ ๋ชจ๋ ์๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ชจ๋ ํด๋ฌ์คํฐ ํ์ผ์ ์ฝ์ด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฑฐ์ XNUMX๋ ๋์ ์ด๊ฒ์ ๊ฐ์ง๊ณ ์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ WAL ๋ธํ๊ฐ ์๋ค๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค.
์ด๋ ๋ง์คํฐ์ WAL์ ๋ณด๊ดํ ๋๋ง๋ค ์ด๋ฅผ ์์ถํ๊ณ ์ํธํํ์ฌ ๋คํธ์ํฌ๋ก ๋ณด๋ผ ๋ฟ๋ง ์๋๋ผ ๋์์ ์ฝ๋๋ค๋ ์๋ฏธ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ ์์ ์๋ ๊ธฐ๋ก์ ๋ถ์ํ๊ณ ์ฝ์ต๋๋ค. ์ด๋ค ๋ธ๋ก์ด ๋ณ๊ฒฝ๋์๋์ง ํ์ ํ๊ณ ๋ธํ ํ์ผ์ ์์งํฉ๋๋ค.
๋ธํ ํ์ผ์ ํน์ ๋ฒ์์ WAL ํ์ผ์ ์ค๋ช ํ๊ณ , ์ด WAL ๋ฒ์์์ ์ด๋ค ๋ธ๋ก์ด ๋ณ๊ฒฝ๋์๋์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ค๋ช ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ๋ธํ ํ์ผ๋ ๋ณด๊ด๋ฉ๋๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ฒ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ณ๋ ฌํํ์ง๋ง ์์ฐจ์ ๊ธฐ๋ก์ ๋ณ๋ ฌ๋ก ์ฝ์ ์ ์๋ค๋ ์ฌ์ค์ ์ง๋ฉดํ์ต๋๋ค. ์๋ํ๋ฉด ํน์ ์ธ๊ทธ๋จผํธ์์ ์์ง ์ฐ๊ฒฐํ ๊ฒ์ด ์๋ ์ด์ WAL ๋ ์ฝ๋์ ๋์ ๋ง๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ณํ ์ฝ๊ธฐ๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ์์ง ๊ณผ๊ฑฐ๊ฐ ์๋ ๋ฏธ๋๋ฅผ ๋จผ์ ๋ถ์ํ๊ฒ ๋์์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ดํดํ ์ ์๋ ๋ถ๋ถ์ _delta_partial ํ์ผ์ ๋ฃ์ด์ผ ํ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ณผ๊ฑฐ๋ก ๋์๊ฐ๋ฉด WAL ๋ ์ฝ๋ ์กฐ๊ฐ์ ํ๋๋ก ๋ฌถ์ ๋ค์ ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ดํดํ๊ฒ ๋ฉ๋๋ค.
์คํํธ ๊ตฌ๋ฌธ ๋ถ์ ๊ธฐ๋ก์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ์ง ๋ชปํ๋ ์ง์ ์ด ํ๋ ์ด์ ์์ผ๋ฉด ๋ค์ ๋ฐฑ์ ์ค์ ์ผ๋ฐ LSN์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์ฒด ํด๋ฌ์คํฐ๋ฅผ ๋ค์ ์ฝ์ด์ผ ํฉ๋๋ค. - ๊ธฐ๋ฐ ๋ธํ.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ์ ๋ชจ๋ ๊ณ ํต์ WAL-G ๊ตฌ๋ฌธ ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์คํ ์์คํํ๋ค๋ ์ฌ์ค๋ก ์ด์ด์ก์ต๋๋ค. ๋ด๊ฐ ์๋ ํ ์์ง ์๋ฌด๋ ์ฌ์ฉํ๊ณ ์์ง ์์ง๋ง ๋๊ตฐ๊ฐ๊ฐ ์ฐ๊ณ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ๊ณต๊ฐ ๋๋ฉ์ธ์ ์์ต๋๋ค. (์
๋ฐ์ดํธ๋ ๋งํฌ
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ชจ๋ ์ ๋ณด ํ๋ฆ์ด ์๋นํ ๋ณต์กํด ๋ณด์ ๋๋ค. ์ฐ๋ฆฌ์ ๋ง์คํฐ๋ ์คํํธ๋ฅผ ๋ณด๊ดํ๊ณ ๋ธํ ํ์ผ์ ๋ณด๊ดํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฑ์ ๋ณต์ฌ๋ณธ์ ๋ง๋๋ ๋ณต์ ๋ณธ์ ๋ฐฑ์ ์ฌ์ด์ ๊ฒฝ๊ณผ๋ ์๊ฐ ๋์ ๋ธํ ํ์ผ์ ๋ฐ์์ผ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ ์ฒด ๊ธฐ๋ก์ด ํฐ ์ธ๊ทธ๋จผํธ์ ๋ง์ง ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ก์ ์ผ๋ถ๋ฅผ ๋๋์ผ๋ก ์ถ๊ฐํ๊ณ ๊ตฌ๋ฌธ ๋ถ์ํด์ผ ํฉ๋๋ค. ๊ทธ ํ์๋ง ๋ณต์ ๋ณธ์ด ์ ์ฒด ๋ธํ ๋ฐฑ์ ์ ๋ณด๊ดํ ์ ์์ต๋๋ค.
๊ทธ๋ํ์์๋ ๋ชจ๋ ๊ฒ์ด ํจ์ฌ ๋จ์ํด ๋ณด์ ๋๋ค. ์ด๊ฒ์ ์ค์ ํด๋ฌ์คํฐ ์ค ํ๋์์ ๋ค์ด๋ก๋ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ LSN ๊ธฐ๋ฐ์ผ๋ก ํ๋ฃจ ๋ง์ ๋ง๋ค์ด์ก์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ LSN ๊ธฐ๋ฐ ๋ธํ ๋ฐฑ์ ์ด ์ค์ 20์๋ถํฐ ์ค์ XNUMX์๊น์ง ์คํ๋๊ณ ์์์ ์ ์ ์์ต๋๋ค. ์ด๋ ํ๋ก์ธ์ ์ฝ์ด ์์ ๋ถํ์ ๋๋ค. WAL-delta๋ ์ฌ๊ธฐ๊น์ง ์ฝ XNUMX๋ถ ์ ๋ ๊ฑธ๋ ธ์ต๋๋ค. ์ฆ, ์๋๊ฐ ํจ์ฌ ๋นจ๋ผ์ก์ง๋ง ๋์์ ๋คํธ์ํฌ๋ฅผ ํตํ ๊ตํ์ด ๋ ๊ฐ๋ ฌํด์ก์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ก์์ ์ด๋ค ๋ธ๋ก์ด ์ธ์ ๋ณ๊ฒฝ๋์๋์ง์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์์ผ๋ฏ๋ก ๋ ๋์๊ฐ "pg_prefaulter"๋ผ๋ PostgreSQL ํ์ฅ ๊ธฐ๋ฅ์ ํตํฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ด๋ ๋๊ธฐ ๊ธฐ์ง๊ฐ ๋ณต์ ๋ช ๋ น์ ์คํํ ๋ WAL-G์๊ฒ ๋ค์ WAL ํ์ผ์ ๊ฐ์ ธ์ค๋ผ๊ณ ์ง์ํ๋ค๋ ์๋ฏธ์ ๋๋ค. ์ฐ๋ฆฌ๋ WAL ๋ณต๊ตฌ ํ๋ก์ธ์ค๊ฐ ๊ฐ๊น์ด ๋ฏธ๋์ ์ด๋ค ๋ฐ์ดํฐ ๋ธ๋ก์ ์ก์ธ์คํ๊ณ ์ด๋ฌํ ๋ธ๋ก์ ๋ํ ์ฝ๊ธฐ ์์ ์ ์์ํ ์ง ๋๋ต์ ์ผ๋ก ์ดํดํฉ๋๋ค. ์ด๋ SSD ์ปจํธ๋กค๋ฌ์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ์ํ๋์์ต๋๋ค. WAL ๋กค์ด ๋ณ๊ฒฝ์ด ํ์ํ ํ์ด์ง์ ๋๋ฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ํ์ด์ง๋ ๋์คํฌ์ ์์ผ๋ฉฐ ํ์ด์ง ์บ์์๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์ด ํ์ด์ง๊ฐ ๋์ฐฉํ ๋๊น์ง ๋์์ ๊ธฐ๋ค๋ฆด ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทผ์ฒ์๋ WAL-G๊ฐ ์์ต๋๋ค. WAL-G๋ ๋ค์ ์๋ฐฑ ๋ฉ๊ฐ๋ฐ์ดํธ์ WAL์์ ํน์ ํ์ด์ง๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ์๊ณ ๋์์ ์๋ฐ์ ์ ์์ํฉ๋๋ค. ๋ณ๋ ฌ๋ก ์คํ๋๋๋ก ์ฌ๋ฌ ๋์คํฌ ์ก์ธ์ค๋ฅผ ์์ํฉ๋๋ค. ์ด๋ SSD ๋๋ผ์ด๋ธ์์๋ ์ ์๋ํ์ง๋ง, ๋ถํํ๊ฒ๋ ํ๋ ๋๋ผ์ด๋ธ์๋ ์ ํ ์ ์ฉ๋์ง ์์ต๋๋ค. ์๋ํ๋ฉด ์ฐ๋ฆฌ๋ ํ๋กฌํํธ๋ก๋ง ๊ฐ์ญํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๊ฒ์ด ์ง๊ธ ์ฝ๋์ ์๋ ๋ด์ฉ์ ๋๋ค.
์ถ๊ฐํ๊ณ ์ถ์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ด ๊ทธ๋ฆผ์ WAL-delta๊ฐ ์๋์ ์ผ๋ก ์งง์ ์๊ฐ์ด ์์๋จ์ ๋ณด์ฌ์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ํ๋ฃจ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ฝ๋ ๊ฒ์ ๋๋ค. WAL-delta๋ ๋ ์ด์ ์ค์ํ ๋ถํ ์์ค๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋ฐค์๋ง ์ํํ ์ ์๋ ๊ฒ์ด ์๋๋๋ค. WAL-delta๋ ์ ๋ ดํ๊ธฐ ๋๋ฌธ์ ๋งค๋ถ ์ฝ์ ์ ์์ต๋๋ค. XNUMX๋ถ ์์ ํด๋ฌ์คํฐ์ ๋ฐ์ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ค์บํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ "์ธ์คํดํธ WAL-๋ธํ"๋ผ๊ณ ๋ถ๋ฆด ์ ์์ต๋๋ค.
์์ ์ ํด๋ฌ์คํฐ๋ฅผ ๋ณต์ํ ๋ ์์ฐจ์ ์ผ๋ก ๋กค์ ํด์ผ ํ๋ ์คํ ๋ฆฌ ์๋ฅผ ์ค์ด๋ ๊ฒ์ ๋๋ค. ์ฆ, PostgreSQL์ด ๋กค๋งํ๋ WAL์ ์์ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ค์ฌ์ผ ํฉ๋๋ค.
ํ์ง๋ง ๊ทธ๊ฒ ์ ๋ถ๋ ์๋๋๋ค. ์ผ๋ถ ๋ธ๋ก์ด ๋ฐฑ์ ์ผ๊ด์ฑ ์ง์ ์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉด ๊ณผ๊ฑฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ฆ, ์ด์ WAL-delta ์ ๋ฌ์ ํ์ผ๋ณ ์ต์ ํ๊ฐ ๊ฐ๋ฅํด์ก์ต๋๋ค. ์ฆ, ์๋ฅผ ๋ค์ด ํ์์ผ์ ์ผ๋ถ ํ ์ด๋ธ์ด ์์ ํ ์ญ์ ๋๊ฑฐ๋ ์ผ๋ถ ํ์ผ์ด ํ ์ด๋ธ์์ ์์ ํ ์ญ์ ๋ ๊ฒฝ์ฐ ์์์ผ์ ๋ธํ ๋กค์ค๋ฒ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ํ ์์ผ์ pg_basebackup์ด ๋ณต์๋๋ฉด ์ด ๋ฐ์ดํฐ๋ ์์ฑ๋์ง ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด ๊ธฐ์ ์ ํ์ด์ง ์์ค์ผ๋ก ํ์ฅํ๊ณ ์ถ์ต๋๋ค. ์ฆ, ํ์ผ์ ์ผ๋ถ๊ฐ ์์์ผ์ ๋ณ๊ฒฝ๋์์ง๋ง ์์์ผ์ ๋ฎ์ด์ฐ๊ฒ ๋๋ฉด ๋ชฉ์์ผ์ ํน์ ์ง์ ์ผ๋ก ๋ณต์ํ ๋ ํ์ด์ง์ ์ฒ์ ๋ช ๋ฒ์ ์ ๋์คํฌ์ ์ธ ํ์๊ฐ ์์ต๋๋ค.
ํ์ง๋ง ์ด๋ ์์ง ์ฐ๋ฆฌ ๋ด๋ถ์์ ํ๋ฐํ๊ฒ ๋ ผ์๋๊ณ ์๋ ์์ด๋์ด์ด์ง๋ง, ์์ง ์ฝ๋์๋ ๋๋ฌํ์ง ๋ชปํ์ต๋๋ค.
์ฐ๋ฆฌ๋ WAL-G์ ๊ธฐ๋ฅ์ ํ๋ ๋ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ํด์ผ ํ๊ณ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋ฐฑ์ ๊ด๋ฆฌ์ ์ ๊ทผํ ์ ์๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ํ์ฅ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ MySQL API๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋๋ค. MySQL์์ PITR์ ๋ฌผ๋ฆฌ์ WAL ๋ก๊ทธ๊ฐ ์๋ binlog๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ MySQL์๋ ์ด binlog๊ฐ ์๋ฃ๋์์ผ๋ฉฐ ๋ณด๊ดํด์ผ ํจ์ ์ผ๋ถ ์ธ๋ถ ์์คํ ์ ์๋ฆฌ๋ ๋ณด๊ด ์์คํ ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ cron ์ด๋๊ฐ์ ์์ ์ค๋น๋ ๊ฒ์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๊น?
๊ทธ๋ฆฌ๊ณ ๋ง์ฐฌ๊ฐ์ง๋ก, MySQL ๋ณต์ ์ค์ ์ด๋ฌํ ํ์ผ์ด ํ์ํ๋ค๋ ๊ฒ์ ์์คํ ์ ์๋ฆด ์ ์๋ ๋ณต์ ๋ช ๋ น์ด ์์ต๋๋ค. ํด๋ฌ์คํฐ ์ฌ๊ตฌ์ถ์ ์์ํ๊ธฐ ์ ์ ์ด๋ค ํ์ผ์ด ํ์ํ์ง ์์์ผ ํฉ๋๋ค. ์ด๋ค ํ์ผ์ด ํ์ํ ์ง ์ค์ค๋ก ์ถ์ธกํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ฌธ์ ๋ ์ด๋ป๊ฒ๋ ํํผ๋ ์ ์์ต๋๋ค. (์ค๋ช : MySQL์ ์ด๋ฏธ ์ง์๋ฉ๋๋ค.)
๋ณด๊ณ ์์์๋ WAL-G๊ฐ ๊ทํ์๊ฒ ์ ํฉํ์ง ์์ ๊ฒฝ์ฐ์ ๋ํด์๋ ์ด์ผ๊ธฐํ๊ณ ์ถ์์ต๋๋ค.
๋๊ธฐ ๋ณต์ ๋ณธ์ด ์๋ ๊ฒฝ์ฐ WAL-G๋ ๋ง์ง๋ง ์ธ๊ทธ๋จผํธ๊ฐ ๋ณด์กด๋๋ค๋ ๊ฒ์ ๋ณด์ฅํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณด๊ด์ด ๊ธฐ๋ก์ ๋ง์ง๋ง ๋ช ๋ถ๋ถ๋ณด๋ค ๋ค์ฒ์ง๋ค๋ฉด ์ด๋ ์ํํฉ๋๋ค. ๋๊ธฐ์ ๋ณต์ ๋ณธ์ด ์์ผ๋ฉด WAL-G๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์ฃผ๋ก ํด๋ผ์ฐ๋ ์ค์น์ฉ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ด๋ ์ปค๋ฐ๋ ๋ง์ง๋ง ๋ฐ์ดํธ์ ์์ ์ ๋ด๋นํ๋ ๋๊ธฐ์ ๋ณต์ ๋ณธ์ ๊ฐ์ถ ๊ณ ๊ฐ์ฉ์ฑ ์๋ฃจ์ ์ ์๋ฏธํฉ๋๋ค.
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์์ ํด๋ฌ์คํฐ๋ฅผ ๋ณต์ํ๊ณ ์์ํ๊ณ ์ฐ๊ธฐ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. pg_dumpall์์ /dev/null๋ก, amcheck ์ธ๋ฑ์ค ํ์ธ์ ๋๋ค.
ํ์ฌ WAL-G์๋ WAL์์ ํ๋์ ๋ฐฑ์
์ ์ฐ๊ธฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ฆ, ์ฐ๋ฆฌ๋ ์ผ๋ถ ์ฐฝ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ง๋ XNUMX์ผ ๋์์ ์ ์ฅ, ์ต๊ทผ XNUMX๊ฐ์ ๋ฐฑ์
์ ์ฅ, ์ต๊ทผ XNUMX๊ฐ์ ์ ์ฒด ๋ฐฑ์
์ ์ฅ ๋ฑ์ด ์์ต๋๋ค. ๊ฝค ์์ฃผ ์ฌ๋๋ค์ด ์์ ์ด๋ ๊ฒ ๋งํฉ๋๋ค. "์ํด์ ์ผ์ด๋ ์ผ์ ๋ํ ๋ฐฑ์
์ด ํ์ํ๋ฉฐ ์์ํ ๋ณด๊ดํ๊ณ ์ถ์ต๋๋ค." WAL-G๋ ์์ง ์ด ์์
์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฆ
๋๋ค. (์ฐธ๊ณ - ์ด ๋ฌธ์ ๋ ์ด๋ฏธ ์์ ๋์์ต๋๋ค. ์์ธํ ์์๋ณด๊ธฐ - ๋ฐฑ์
ํ์ ์ต์
๊ทธ๋ฆฌ๊ณ PITR์ ๊ฒ์ฆํ ๋ ๋ชจ๋ ์คํํธ ์ธ๊ทธ๋จผํธ์ ๋ํ ํ์ด์ง ์ฒดํฌ์ฌ ๋ฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๊ฐ ์์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์์ ๋๋ Google Summer of Code ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ์ต๋๋ค. Go๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์์ฑํ๊ณ ๋ฌธ์ "G"๊ฐ ์๋ ํ์ฌ๋ก๋ถํฐ ์์ฒ ๋ฌ๋ฌ๋ฅผ ๋ฐ๊ณ ์ถ์ ๋๋ํ ํ์๋ค์ ์๊ณ ์๋ค๋ฉด ๊ทธ๋ค์๊ฒ ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ฅผ ์ถ์ฒํ์ธ์. ์ ๋ ์ด ํ๋ก์ ํธ์ ๋ฉํ ์ญํ ์ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ํ ์ ์์ต๋๋ค. ํ์์ด ์์ผ๋ฉด ์ฌ๋ฆ์ ์ ๊ฐ ์ง์ ๊ฐ์ ธ๊ฐ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ ์ฐจ์ ์ผ๋ก ๋ ธ๋ ฅํ๊ณ ์๋ ๋ค๋ฅธ ๋ง์ ์์ ๋ฌธ์ ๋ค์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฝค ์ด์ํ ์ผ๋ค์ด ์ผ์ด๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, WAL-G์ ๋น ๋ฐฑ์ ์ ์ ๊ณตํ๋ฉด ๋จ์ํ ์ญ์ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋น ํด๋๋ฅผ ๋ฐฑ์ ํด์ผ ํ๋ค๊ณ ๋งํ๋ฉด ๋ฉ๋๋ค. pg_control ํ์ผ์ ๊ฑฐ๊ธฐ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์์ ์ด ๋ญ๊ฐ๋ฅผ ์ดํดํ์ง ๋ชปํ๋ค๊ณ ์๊ฐํ ๊ฒ์ ๋๋ค. ์ด๋ก ์ ์ผ๋ก ์ด ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ๋๊ตฌ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ์ผ๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง์ด ์๋๋ผ ํ๋ฅญํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์ธ์ด์ ํน์ง์ ๋๋ค.
์คํ๋ผ์ธ ๋ฐฑ์ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ฑฐ์ง๋ง์ ํ๊ณ ์์ผ๋ฉด ๋ฐฑ์ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์๋ ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์์๋๋ฉด LSN์ผ๋ก ๋ฐฑ์ ์ ํธ์ถํฉ๋๋ค. ๊ธฐ๋ณธ ๋ฒ ์ด์ค์ LSN์ ์ ์ด ํ์ผ์์ ์ฝ์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์คํ๋์ง ์์ ๊ธฐ๋ฅ์ ๋๋ค. ๋ง์ ๋ฐฑ์ ์์คํ ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฑ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ํธ๋ฆฌํฉ๋๋ค.
ํ์ฌ๋ ๋ฐฑ์ ๊ณต๊ฐ ๋ถ์กฑ์ ์ ๋๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์๋ํ๋ฉด ์ฐ๋ฆฌ๋ ๋ณดํต ์ง์์ ๋๊ท๋ชจ ๋ฐฑ์ ์์ ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๊ทธ๊ฒ์ ๋ํด ์ดํดํ์ง ๋ชปํ์ต๋๋ค. ํ์ง๋ง ๋๊ตฐ๊ฐ ์ง๊ธ ๋น์ฅ Go๋ก ํ๋ก๊ทธ๋๋ฐํ๊ณ ์ถ๋ค๋ฉด ๋ฒํท์ ๊ณต๊ฐ ๋ถ์กฑ ์ค๋ฅ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ธ์. ํ ๋ฆฌํ์คํธ๋ฅผ ๊ผญ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๊ฑฑ์ ํ๋ ์ ์ ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ํ์ธํ๋ ๊ฐ๋ฅํ ํ ๋ง์ ๋์ปค ํตํฉ ํ ์คํธ๋ฅผ ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ง๊ธ์ ๊ธฐ๋ณธ ์๋๋ฆฌ์ค๋ง ํ ์คํธํ๊ณ ์์ต๋๋ค. ์ปค๋ฐํ ๋๋ง๋ค ์ง์ํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ปค๋ฐ๋ณ๋ก ํ์ธํ๊ณ ์ถ์ต๋๋ค. ํนํ, ์๋ฅผ ๋ค์ด PostgreSQL 9.4-9.5์ ๋ํ ์ง์์ด ์ถฉ๋ถํ ๊ฒ์ ๋๋ค. ์ปค๋ฎค๋ํฐ๊ฐ PostgreSQL์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ง์ํ์ง๋ง ๋ชจ๋ ๊ฒ์ด ์์๋์ง ์์๋์ง ํ์ธํ๊ธฐ ์ํด ์ปค๋ฐ๋ณ๋ก ํ์ธํ์ง๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋ค์ ์ฌ๊ฐํ ์ํ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
Yandex ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ ์ฒ ๊ฐ๊ฐ ๋๋ ํด๋ฌ์คํฐ์์ WAL-G๊ฐ ์คํ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋งค์ผ ์๋ฐฑ ํ ๋ผ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ํฉ๋๋ค.
์ฐ๋ฆฌ ์ฝ๋์๋ TODO๊ฐ ๋ง์ด ์์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ์ ํ๊ณ ์ถ๋ค๋ฉด ์ค์ธ์. ํ ๋ฆฌํ์คํธ์ ์ง๋ฌธ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
์ง๋ฌธ
์ข์ ์ ๋ ์ด์์! ๊ฐ์ฌํฉ๋๋ค! ๋ด ์๊ฐ์๋ 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 ์๋ก์ด ๋ฒ์ ์ด ์ถ์๋์์ต๋๋ค.
๋น๋์ค :
์ถ์ฒ : habr.com