์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ. Vladislav Rodin๋์ด ์ฐ๋ฝ์ ์ฃผ์
จ์ต๋๋ค. ์ ๋ ํ์ฌ OTUS์์ ์ํํธ์จ์ด ์ํคํ
์ฒ ๋ฐ ๊ณ ์คํธ๋ ์ค ์ํํธ์จ์ด ์ํคํ
์ฒ ๊ณผ์ ์ ๊ฐ๋ฅด์น๊ณ ์์ต๋๋ค. ์๋ก์ด ๊ฐ์ ์์์ ๊ธฐ๋ํ๋ฉฐ
์๊ฐ
HDD๋ ์ด๋น ์ฝ 400~700๊ฐ์ ์์ ๋ง ์ํํ ์ ์๋ค๋ ์ฌ์ค(๊ณ ๋ถํ ์์คํ ์ ์ผ๋ฐ์ ์ธ rps์ ๋น๊ตํ ์ ์์)๋ก ์ธํด ๊ธฐ์กด ๋์คํฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ํคํ ์ฒ์ ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ด ์คํ ๋ฆฌ์ง์ ํ์ฅ ํจํด์ ํน๋ณํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํฉ๋๋ค.
ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฅ ํจํด์๋ ๋ณต์ ์ ์ค๋ฉ์ด๋ผ๋ 2๊ฐ์ง ํจํด์ด ์์ต๋๋ค. ์ค๋ฉ์ ์ฌ์ฉํ๋ฉด ์ฐ๊ธฐ ์์
์ ํ์ฅํ ์ ์์ผ๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก ํด๋ฌ์คํฐ์ ์๋ฒ๋น ์ฐ๊ธฐ๋น rps๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ๋ณต์ ๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผํ ์์
์ ์ํํ ์ ์์ง๋ง ์ฝ๊ธฐ ์์
์ด ํ์ํฉ๋๋ค. ์ด ๊ธฐ์ฌ์์ ๋ค๋ฃจ๋ ๊ฒ์ ๋ฐ๋ก ์ด ํจํด์
๋๋ค.
๋ณต์
๋งค์ฐ ๋์ ์์ค์์ ๋ณต์ ๋ฅผ ์ดํด๋ณด๋ฉด ๊ฐ๋จํฉ๋๋ค. ์๋ฒ๊ฐ ํ๋ ์๊ณ ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ด ์๋ฒ๋ ๋ ์ด์ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ก๋๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์๋ฒ๋ฅผ ๋ช ๋ ๋ ์ถ๊ฐํ๊ณ ๋ชจ๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๋ฉด ์ฌ์ฉ์๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ์๋ฒ์์ ์ฝ์ ์ ์์ต๋๋ค.
๋ช ๋ฐฑํ ๋จ์์ฑ์๋ ๋ถ๊ตฌํ๊ณ ์ด ์ฒด๊ณ์ ๋ค์ํ ๊ตฌํ์ ๋ถ๋ฅํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค.
- ํด๋ฌ์คํฐ์ ์ญํ ๋ณ(๋ง์คํฐ-๋ง์คํฐ ๋๋ ๋ง์คํฐ-์ฌ๋ ์ด๋ธ)
- ์ ์ก๋ ๊ฐ์ฒด๋ณ(ํ ๊ธฐ๋ฐ, ๋ช ๋ น๋ฌธ ๊ธฐ๋ฐ ๋๋ ํผํฉ)
- ๋ ธ๋ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ๋ฐ๋ฅด๋ฉด
์ค๋ ์ฐ๋ฆฌ๋ ํฌ์ธํธ 3์ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.
ํธ๋์ญ์ ์ปค๋ฐ์ ์ด๋ป๊ฒ ๋ฐ์ํฉ๋๊น?
์ด ์ฃผ์ ๋ ๋ณต์ ์ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์์ผ๋ฏ๋ก ๋ณ๋์ ๊ธฐ์ฌ๋ฅผ ์์ฑํ ์ ์์ง๋ง ํธ๋์ญ์ ์ปค๋ฐ ๋ฉ์ปค๋์ฆ์ ์ดํดํ์ง ์๊ณ ์๋ ๋ ์ฝ์ด๋ ์์ฉ์ด ์์ผ๋ฏ๋ก ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ฌํญ์ ์๊ธฐ์์ผ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ํธ๋์ญ์ ์ปค๋ฐ์ 3๋จ๊ณ๋ก ๋ฐ์ํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ์ ํธ๋์ญ์ ์ ๊ธฐ๋กํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์์ ํธ๋์ญ์ ์ ์ฌ์ฉํฉ๋๋ค.
- ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉ๋์๋ค๋ ํ์ธ์ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค.
๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ฏธ๋ฌํ ์ฐจ์ด๊ฐ ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ InnoDB ์์ง์๋ 2๊ฐ์ ๋ก๊ทธ๊ฐ ์์ต๋๋ค. ํ๋๋ ๋ณต์ ์ฉ(๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ)์ด๊ณ ๋ค๋ฅธ ํ๋๋ ACID ์ ์ง์ฉ(์คํ ์ทจ์/๋ค์ ์คํ ๋ก๊ทธ)์ด๋ฉฐ, PostgreSQL์์๋ ๋ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ํํ๋ ํ๋์ ๋ก๊ทธ๊ฐ ์์ต๋๋ค(๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊ทธ = WAL). ๊ทธ๋ฌ๋ ์์ ์ ์๋ ๊ฒ์ ๊ทธ๋ฌํ ๋์์ค๋ฅผ ๊ณ ๋ คํ์ง ์๋ ์ผ๋ฐ์ ์ธ ๊ฐ๋ ์ ๋๋ค.
๋๊ธฐ์(๋๊ธฐํ) ๋ณต์
์์ ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํธ๋์ญ์ ์ปค๋ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์ ํ๋ ๋ ผ๋ฆฌ๋ฅผ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ์ ํธ๋์ญ์ ์ ๊ธฐ๋กํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์์ ํธ๋์ญ์ ์ ์ฌ์ฉํฉ๋๋ค.
- ๋ชจ๋ ๋ณต์ ๋ณธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์ค์ ๋๋ค.
- ๋ชจ๋ ๋ณต์ ๋ณธ์ผ๋ก๋ถํฐ ํธ๋์ญ์ ์ด ์๋ฃ๋์๋ค๋ ํ์ธ์ ๋ฐ์ต๋๋ค.
- ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉ๋์๋ค๋ ํ์ธ์ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ง ๋จ์ ์ด ์์ต๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ชจ๋ ๋ณต์ ๋ณธ์ ์ ์ฉ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
- ํด๋ฌ์คํฐ์ ๋ ธ๋ ์๊ฐ ์ฆ๊ฐํ๋ฉด ์ฐ๊ธฐ ์์ ์ด ์ฑ๊ณตํ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค.
์ฒซ ๋ฒ์งธ ์์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋ค์ ๋ช ํํ๋ค๋ฉด ๋ ๋ฒ์งธ ์์ ์ ๋ํ ์ด์ ๋ฅผ ์ค๋ช ํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋๊ธฐ ๋ณต์ ์ค์ ํ๋ ์ด์์ ๋ ธ๋๋ก๋ถํฐ ์๋ต์ ๋ฐ์ง ๋ชปํ๋ฉด ํธ๋์ญ์ ์ ๋กค๋ฐฑํฉ๋๋ค. ๋ฐ๋ผ์ ํด๋ฌ์คํฐ์ ๋ ธ๋ ์๋ฅผ ๋๋ฆฌ๋ฉด ์ฐ๊ธฐ ์์ ์ด ์คํจํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.
์๋ฅผ ๋ค์ด 51%(์ ์กฑ์)์ ๊ฐ์ด ํน์ ๋น์จ์ ๋ ธ๋์์๋ง ํ์ธ์ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๊น? ์, ๊ฐ๋ฅํฉ๋๋ค. ํ์ง๋ง ํด๋์ ๋ฒ์ ์์๋ ๋ชจ๋ ๋ ธ๋์ ํ์ธ์ด ํ์ํฉ๋๋ค. ์ด๋ ํด๋ฌ์คํฐ์์ ์์ ํ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ฉฐ, ์ด๋ ์ด๋ฌํ ๋ณต์ ์ ํ์ ํ์คํ ์ด์ ์ ๋๋ค.
๋น๋๊ธฐ(async) ๋ณต์
์ด์ ์๊ณ ๋ฆฌ์ฆ์ ์์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ "์ธ์ ๊ฐ" ๋ณต์ ๋ณธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ "์ธ์ ๊ฐ ๋์ค์" ๋ณ๊ฒฝ ์ฌํญ์ด ๋ณต์ ๋ณธ์ ์ ์ฉ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ์ ํธ๋์ญ์ ์ ๊ธฐ๋กํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์์ ํธ๋์ญ์ ์ ์ฌ์ฉํฉ๋๋ค.
- ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉ๋์๋ค๋ ํ์ธ์ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ๋ณธ์ผ๋ก ๋ณด๋ด๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๊ฐ ๋ณต์ ๋ณธ์ ๋๋ฌํ๊ณ ์ปค๋ฐ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋ฌ์คํฐ๊ฐ ๋น ๋ฅด๊ฒ ์๋ํ๋ค๋ ์ฌ์ค๋ก ์ด์ด์ง๋๋ค.
๊ทธ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ "์ธ์ ๊ฐ ๋์ค์" ๋ณต์ ๋ณธ์ ๋คํํ๋ ์กฐ๊ฑด์ ํธ๋์ญ์ ์์ค๋ก ์ด์ด์ง ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ๋ณต์ ๋ ์๊ฐ์ด ์์๋ค๋ฉด ํด๋ผ์ด์ธํธ์ ๋ํ ํ์ธ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ํ์ธํ ํธ๋์ญ์ ์์ค์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์์ ์ฑ๊ณต์ ๋ํ ์ ๋ณด๊ฐ ์ ์ก๋์๊ณ ๋ณ๊ฒฝ ์ฌํญ์ด ๋์ฐฉํ ๋ ธ๋๊ฐ HDD์ ์ถฉ๋ํ๋ฉด ํธ๋์ญ์ ์ด ์์ค๋์ด ๋งค์ฐ ๋ถ์พํ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.
๋ฐ๋๊ธฐ์ ๋ณต์
๋ง์ง๋ง์ผ๋ก ๋ฐ๋๊ธฐ ๋ณต์ ์ ๋๋ฌํฉ๋๋ค. ์ด๋ฌํ ์ ํ์ ๋ณต์ ๋ ์ ์๋ ค์ ธ ์์ง๋ ์๊ณ ํํ์ง๋ ์์ง๋ง ๋๊ธฐ์ ๋ณต์ ์ ๋น๋๊ธฐ์ ๋ณต์ ์ ์ฅ์ ์ ๊ฒฐํฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋นํ ๊ด์ฌ์ ๋๊ณ ์์ต๋๋ค.
์ด์ ์ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ๊ฒฐํฉํด ๋ณด๊ฒ ์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ฅผ ์ค๋ซ๋์ ์ ์งํ์ง๋ ์์ง๋ง ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํด์ผ ํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ์ ํธ๋์ญ์ ์ ๊ธฐ๋กํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์์ ํธ๋์ญ์ ์ ์ฌ์ฉํฉ๋๋ค.
- ๋ณต์ ๋ณธ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์ค์ ๋๋ค.
- ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋์๋ค๋ ํ์ธ์ ๋ณต์ ๋ณธ์ผ๋ก๋ถํฐ ์์ ํฉ๋๋ค("์ธ์ ๊ฐ" ์ ์ฉ๋จ).
- ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉ๋์๋ค๋ ํ์ธ์ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ์์ ํ๋ ๋ ธ๋์ ๋ณต์ ๋ ธ๋๊ฐ ๋ชจ๋ ์คํจํ ๊ฒฝ์ฐ์๋ง ํธ๋์ญ์ ์์ค์ด ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฌํ ์คํจ ๊ฐ๋ฅ์ฑ์ ๋ฎ์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ฉฐ ์ด๋ฌํ ์ํ์ ํ์ฉ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๊ฐ์ ์ฝ๊ธฐ๊ฐ ๋ฐ์ํ ์ํ์ด ์์ต๋๋ค. ๋ค์ ์๋๋ฆฌ์ค๋ฅผ ์์ํด ๋ด ์๋ค. 4๋จ๊ณ์์ ์ด๋ค ๋ณต์ ๋ณธ์ผ๋ก๋ถํฐ๋ ํ์ธ์ ๋ฐ์ง ๋ชปํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด ๊ฑฐ๋๋ฅผ ๋กค๋ฐฑํด์ผ ํ๋ฉฐ ํด๋ผ์ด์ธํธ์๊ฒ ํ์ธ ๋ฉ์์ง๋ฅผ ๋ฐํํด์๋ ์ ๋ฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ 2๋จ๊ณ์์ ์ ์ฉ๋์์ผ๋ฏ๋ก 2๋จ๊ณ ์ข ๋ฃ์ ํธ๋์ญ์ ๋กค๋ฐฑ ์ฌ์ด์ ์๊ฐ ๊ฐ๊ฒฉ์ด ์์ต๋๋ค. ์ด ๊ธฐ๊ฐ ๋์ ๋ณ๋ ฌ ํธ๋์ญ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ด์๋ ์ ๋๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณผ ์ ์์ต๋๋ค.
๋ฌด์์ค ๋ฐ๋๊ธฐํ ๋ณต์
์กฐ๊ธ๋ง ์๊ฐํด ๋ณด๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ๋จ๊ณ๋ฅผ ๋ฐ๋๋ก ๋ฐ๊พธ์ด ์ด ์๋๋ฆฌ์ค์์ ํฌํ ์ฝ๊ธฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ์ ํธ๋์ญ์ ์ ๊ธฐ๋กํฉ๋๋ค.
- ๋ณต์ ๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์ค์ ๋๋ค.
- ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋์๋ค๋ ํ์ธ์ ๋ณต์ ๋ณธ์ผ๋ก๋ถํฐ ์์ ํฉ๋๋ค("์ธ์ ๊ฐ" ์ ์ฉ๋จ).
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์์ ํธ๋์ญ์ ์ ์ฌ์ฉํฉ๋๋ค.
- ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉ๋์๋ค๋ ํ์ธ์ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค.
์ด์ ๋ณต์ ๋ ๊ฒฝ์ฐ์๋ง ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค.
์ถ๋ ฅ
ํญ์ ๊ทธ๋ ๋ฏ์ด ์ด์์ ์ธ ์๋ฃจ์ ์ ์์ผ๋ฉฐ ๊ฐ๊ฐ ๊ณ ์ ํ ์ฅ์ ๊ณผ ๋จ์ ์ด ์๊ณ ๋ค์ํ ์ข ๋ฅ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ ํฉํ ์ผ๋ จ์ ์๋ฃจ์ ์ด ์์ต๋๋ค. ์ด๋ ๋ณต์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๊ธฐ ์ํ ๋ฉ์ปค๋์ฆ์ ์ ํํ ๋์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ฐ๋๊ธฐ ๋ณต์ ์ ์ผ๋ จ์ ์ฅ์ ์ ๋ฎ์ ๋ณด๊ธ๋ฅ ์๋ ๋ถ๊ตฌํ๊ณ ์ฃผ๋ชฉํ ๋งํ ๊ฐ์น๊ฐ ์๋ค๊ณ ๊ฐ์ฃผ๋ ๋งํผ ์ถฉ๋ถํ ๊ฒฌ๊ณ ํ๊ณ ํฅ๋ฏธ๋กญ์ต๋๋ค.