์ด๊ฒ์ด ์ค๋ณต์ ๋ชจ์ต์ ๋๋ค
์ค๋ณต ์ฝ๋*๋ ๋ฐ์ดํฐ ์ ์ฅ์ ์ ๋ขฐ์ฑ์ ๋์ด๊ธฐ ์ํด ์ปดํจํฐ ์์คํ
์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. Yandex์์๋ ๋ง์ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ด๋ถ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์์ ๋ณต์ ๋์ ์ค๋ณต ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ์ฑ์ ํฌ์ํ์ง ์๊ณ ๋ ์๋ฐฑ๋ง ๋ฌ๋ฌ๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ฆฌ ์ฌ์ฉ๋จ์๋ ๋ถ๊ตฌํ๊ณ ์ค๋ณต ์ฝ๋์ ์๋ ๋ฐฉ์์ ๋ํ ๋ช
ํํ ์ค๋ช
์ ๋งค์ฐ ๋๋ญ
๋๋ค. ์ดํดํ๊ณ ์ถ์ ์ฌ๋๋ค์ ๋๋ต ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ ์ง๋ฉดํฉ๋๋ค.
์ ์ด๋ฆ์ Vadim์ด๊ณ Yandex์์ ๋ด๋ถ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง MDS๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ์ด ๊ธฐ์ฌ์์๋ ์ค๋ณต ์ฝ๋(Reed-Solomon ๋ฐ LRC ์ฝ๋)์ ์ด๋ก ์ ๊ธฐ์ด๋ฅผ ๊ฐ๋จํ ๋จ์ด๋ก ์ค๋ช ํฉ๋๋ค. ๋ณต์กํ ์ํ๊ณผ ํฌ๊ท ์ฉ์ด ์์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ง์ง๋ง์๋ Yandex์์ ์ค๋ณต ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ์๋ฅผ ์ ์ํ๊ฒ ์ต๋๋ค.
๋๋ ๋ง์ ์ํ์ ์ธ๋ถ ์ฌํญ์ ์์ธํ ๊ณ ๋ คํ์ง ์์ ๊ฒ์ด์ง๋ง ๋ ๊น์ด ๋ค์ด๊ฐ๊ณ ์ถ์ ์ฌ๋๋ค์ ์ํด ๋งํฌ๋ฅผ ์ ๊ณตํ ๊ฒ์ ๋๋ค. ๋ํ ์ด ๊ธฐ์ฌ๋ ์ํ์๋ฅผ ๋์์ผ๋ก ํ ๊ฒ์ด ์๋๋ผ ๋ฌธ์ ์ ๋ณธ์ง์ ์ดํดํ๋ ค๋ ์์ง๋์ด๋ฅผ ๋์์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ์ํ์ ์ ์๋ ์๊ฒฉํ์ง ์์ ์๋ ์๋ค๋ ์ ์ ์ ์ํ๊ฒ ์ต๋๋ค.
* ์์ด ๋ฌธํ์์๋ ์ค๋ณต ์ฝ๋๋ฅผ ์ญ์ ์ฝ๋๋ผ๊ณ ๋ ํฉ๋๋ค.
1. ์ค๋ณต์ฝ๋์ ๋ณธ์ง
๋ชจ๋ ์ค๋ณต ์ฝ๋์ ๋ณธ์ง์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์ค๋ฅ(๋์คํฌ ์ค๋ฅ, ๋ฐ์ดํฐ ์ ์ก ์ค๋ฅ ๋ฑ)๊ฐ ๋ฐ์ํด๋ ๋ฐ์ดํฐ๊ฐ ์์ค๋์ง ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ(๋๋ ์ ์ก)ํ๋ ๊ฒ์ ๋๋ค.
๋๋ถ๋ถ*์ ์ค๋ณต ์ฝ๋์์๋ ๋ฐ์ดํฐ๋ฅผ n๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ผ๋ก ๋๋๊ณ , ์ด์ ๋ํด m๊ฐ์ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๊ณ์ฐํ์ฌ ์ด n+m๊ฐ์ ๋ธ๋ก์ด ๋ฉ๋๋ค. ์ค๋ณต ์ฝ๋๋ n + m ๋ธ๋ก ์ค ์ผ๋ถ๋ง์ ์ฌ์ฉํ์ฌ n ๋ธ๋ก์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ค์์ผ๋ก, ๋ธ๋ก ์ค๋ณต ์ฝ๋, ์ฆ ๋ฐ์ดํฐ๊ฐ ๋ธ๋ก์ผ๋ก ๋๋์ด์ง ์ฝ๋๋ง์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
n๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ชจ๋ ๋ณต๊ตฌํ๋ ค๋ฉด n + m๊ฐ ๋ธ๋ก ์ค n๊ฐ ์ด์์ด ํ์ํฉ๋๋ค. n-1๊ฐ ๋ธ๋ก๋ง ์์ผ๋ฉด n๊ฐ ๋ธ๋ก์ ์ป์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์์ ๋ธ๋ก์์ 1๊ฐ ๋ธ๋ก์ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ๊ณต๊ธฐ"). n + m ๋ธ๋ก์ n ๋ฌด์์ ๋ธ๋ก์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๊ธฐ์ ์ถฉ๋ถํฉ๋๊น? ์ด๋ ์ค๋ณต ์ฝ๋ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด Reed-Solomon ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์์์ n ๋ธ๋ก์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์์ง๋ง LRC ์ค๋ณต ์ฝ๋๊ฐ ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค.
๋ฐ์ดํฐ ์ ์ฅ
๋ฐ์ดํฐ ์ ์ฅ ์์คํ ์์๋ ์์น์ ์ผ๋ก ๊ฐ ๋ฐ์ดํฐ ๋ธ๋ก๊ณผ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ด ๋ณ๋์ ๋์คํฌ์ ๊ธฐ๋ก๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์์ ๋์คํฌ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ๋ณต์ํ๊ณ ์ฝ์ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๋์คํฌ์ ๋์์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์ ์ก
์ค๋ณต ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ขฐํ ์ ์๋ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ ์ ์ผ๋ก ์ ์กํ ์ ์์ต๋๋ค. ์ ์ก๋ ๋ฐ์ดํฐ๋ ๋ธ๋ก์ผ๋ก ๋๋์ด์ง๊ณ , ์ด์ ๋ํ ์ค๋ณต ์ฝ๋๊ฐ ๊ณ์ฐ๋ฉ๋๋ค. ๋ฐ์ดํฐ ๋ธ๋ก๊ณผ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๋ชจ๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋ฉ๋๋ค. ์์์ ๋ธ๋ก(ํน์ ๋ธ๋ก ์๊น์ง)์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ค๋ฅ ์์ด ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋๋ ๊ดํต์ ํ์ ๊ณผ ์์ฑ ํต์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
* ์ด๋๋ท ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ ์ ์ก์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํด๋ฐ ์ฝ๋, CRC ์ฝ๋ ๋ฑ ๋ฐ์ดํฐ๊ฐ ๋ธ๋ก์ผ๋ก ๊ตฌ๋ถ๋์ง ์๋ ์ค๋ณต ์ฝ๋๋ ์์ต๋๋ค. ์ด๋ ์ค๋ฅ ์์ ์ฝ๋ฉ์ ์ํ ์ฝ๋๋ก, ์ค๋ฅ๋ฅผ ์์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ค๋ฅ๋ฅผ ๊ฐ์งํ๋๋ก ์ค๊ณ๋์์ต๋๋ค(Hamming ์ฝ๋๋ ์ค๋ฅ์ ๋ถ๋ถ ์์ ๋ ํ์ฉํจ).
2. ๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋
๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ค๋ณต ์ฝ๋ ์ค ํ๋๋ก 1960๋ ๋์ ๋ฐ๋ช ๋์์ผ๋ฉฐ 1980๋ ๋์ ์ปดํฉํธ ๋์คํฌ ๋๋ ์์ฐ์ ์ํด ์ฒ์์ผ๋ก ๋๋ฆฌ ์ฌ์ฉ๋์์ต๋๋ค.
๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ํ ๋ ๊ฐ์ง ์ฃผ์ ์ง๋ฌธ์ด ์์ต๋๋ค. 1) ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ์์ฑํ๋ ๋ฐฉ๋ฒ; 2) ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐฉ๋ฒ. ๊ทธ๋ค์ ๋ํ ๋ต์ ์ฐพ์๋ณด์.
๋จ์ํ๋ฅผ ์ํด n=6, m=4๋ผ๊ณ ๋ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ๊ณํ๋ ์ ์ฌํ๊ฒ ๊ณ ๋ ค๋ฉ๋๋ค.
์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๋ง๋๋ ๋ฐฉ๋ฒ
์ค๋ณต ์ฝ๋์ ๊ฐ ๋ธ๋ก์ ๋ค๋ฅธ ๋ธ๋ก๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ณ์ฐ๋ฉ๋๋ค. ๋ชจ๋ n๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๊ฐ ๋ธ๋ก์ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ ๋ค์ด์ด๊ทธ๋จ์์ X1-X6์ ๋ฐ์ดํฐ ๋ธ๋ก์ด๊ณ , P1-P4๋ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๋๋ค.
๋ชจ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ํฌ๊ธฐ๊ฐ ๋์ผํด์ผ ํ๋ฉฐ ์ ๋ ฌ์๋ 16๋นํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ธ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๋ฐ์ดํฐ ๋ธ๋ก๊ณผ ๋์ผํ ํฌ๊ธฐ๊ฐ ๋ฉ๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ์๋(์: XNUMX๋นํธ)๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. ๋ฐ์ดํฐ ๋ธ๋ก์ k ๋จ์ด๋ก ๋ถํ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ค๋ณต ์ฝ๋์ ๋ชจ๋ ๋ธ๋ก๋ k ๋จ์ด๋ก ๋ถํ ๋ฉ๋๋ค.
๊ฐ ์ค๋ณต ๋ธ๋ก์ i๋ฒ์งธ ์๋๋ฅผ ๊ณ์ฐํ๋ ค๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ i๋ฒ์งธ ์๋๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ค์ ๊ณต์์ ๋ฐ๋ผ ๊ณ์ฐ๋ฉ๋๋ค.
์ฌ๊ธฐ์ x ๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋จ์ด, p๋ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๋จ์ด, ๋ชจ๋ ์ํ, ๋ฒ ํ, ๊ฐ๋ง ๋ฐ ๋ธํ๋ ๋ชจ๋ i์ ๋ํด ๋์ผํ ํน๋ณํ ์ ํ๋ ์ซ์์ ๋๋ค. ์ด ๋ชจ๋ ๊ฐ์ ์ผ๋ฐ ์ซ์๊ฐ ์๋๋ผ ๊ฐ๋ฃจ์ ํ๋์ ์์์ด๋ฉฐ +, -, *, / ์ฐ์ฐ์ ์ฐ๋ฆฌ ๋ชจ๋์๊ฒ ์น์ํ ์ฐ์ฐ์ด ์๋๋ผ ๊ฐ๋ฃจ์ ์์์ ๋์ ๋ ํน์ ์ฐ์ฐ์ ๋๋ค. ํ๋.
๊ฐ๋ฃจ์ ํ๋๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ชจ๋ ๊ฒ์ด ๋จ์ํด ๋ณด์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ธ๋ก์ผ๋ก, ๋ธ๋ก์ ๋จ์ด๋ก ๋๋๊ณ , ๋ฐ์ดํฐ ๋ธ๋ก์ ๋จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๋จ์ด๋ฅผ ๊ณ์ฐํ์ฌ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ์ป์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ์ง๋ง ๋ฌธ์ ๋ ์ธ๋ถ ์ฌํญ์ ์์ต๋๋ค.
- ์์์ ์ค๋ช ํ ๋๋ก ๋จ์ด ํฌ๊ธฐ๋ ๊ณ ์ ๋์ด ์์ต๋๋ค(์์ ์์๋ 16๋นํธ). ๋ฆฌ๋-์๋ก๋ชฌ ์ฝ๋์ ๋ํ ์์ ๊ณต์์ ์ผ๋ฐ ์ ์๋ฅผ ์ฌ์ฉํ ๋ p ๊ณ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ ํจํ ํฌ๊ธฐ์ ๋จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํํ๋์ง ์์ ์ ์๋ค๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ๋ ์์ ๊ณต์์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ํด ํ์ด์ผ ํ๋ ๋ฐฉ์ ์ ์์คํ ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ํ์ด ๊ณผ์ ์์ ์ ์๋ฅผ ์๋ก ๋๋์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์ด๋ก ์ธํด ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ ํํ๊ฒ ํํํ ์ ์๋ ์ค์๊ฐ ์์ฑ๋ฉ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ก ์ธํด ๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋์ ์ ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ๋ ์ฐฝ์ ์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช ํ ์ ์์ต๋๋ค. ํ์ํ ๊ธธ์ด(์: 16๋นํธ)์ ๋จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํํํ ์ ์๋ ํน์ ์ซ์์ ์ด์ ๋ํ ๋ชจ๋ ์ฐ์ฐ์ ์ํํ ๊ฒฐ๊ณผ(์ถ๊ฐ) , ๋บ์ , ๊ณฑ์ , ๋๋์ )๋ ํ์ํ ๊ธธ์ด์ ๋จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์ ํ์๋ฉ๋๋ค.
์ด๋ฌํ "ํน์" ์ซ์๋ ์ํ์์ ์ค๋ซ๋์ ์ฐ๊ตฌ๋์ด ์์ผ๋ฉฐ ์ด๋ฅผ ํ๋๋ผ๊ณ ํฉ๋๋ค. ํ๋๋ ๋ง์ , ๋บ์ , ๊ณฑ์ , ๋๋์ ์ฐ์ฐ์ด ์ ์๋ ์์ ์งํฉ์ ๋๋ค.
๊ฐ๋ฃจ์* ํ๋๋ ํ๋์ ๋ ์์์ ๋ํ ๊ฐ ์ฐ์ฐ(+, -, *, /)์ ๊ณ ์ ํ ๊ฒฐ๊ณผ๊ฐ ์๋ ํ๋์ ๋๋ค. ๊ฐ๋ฃจ์์ฅ์ 2, 2, 4, 8 ๋ฑ์ ๊ฑฐ๋ญ์ ๊ณฑ์ธ ์ซ์์ ๋ํด ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค. (์ค์ ๋ก๋ ๋ชจ๋ ์์ p์ ๊ฑฐ๋ญ์ ๊ณฑ์ด์ง๋ง ์ค์ ๋ก๋ 16์ ๊ฑฐ๋ญ์ ๊ณฑ์๋ง ๊ด์ฌ์ด ์์ต๋๋ค.) ์๋ฅผ ๋ค์ด, 2๋นํธ ๋จ์ด์ ๊ฒฝ์ฐ ์ด๋ 16๊ฐ์ ์์๋ฅผ ํฌํจํ๋ ํ๋์ด๋ฉฐ ๊ฐ ์์ ๋ํด ๋ชจ๋ ์ฐ์ฐ(+, -, *, /)์ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ ๋ฐฉ์ ์์ x, p, ์ํ, ๋ฒ ํ, ๊ฐ๋ง, ๋ธํ ๊ฐ์ ๊ณ์ฐ ์ ๊ฐ๋ฃจ์ ํ๋์ ์์๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ ์ ํ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ฌ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๊ตฌ์ฑํ ์ ์๋ ๋ฐฉ์ ์ ์์คํ ์ ๊ฐ๊ฒ ๋์์ต๋๋ค. ๋์ผํ ๋ฐฉ์ ์ ์์คํ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ณต๊ตฌ๋ฅผ ์ํํ ์ ์์ต๋๋ค.
* ์ด๋ ์๋ฐํ ์ ์๊ฐ ์๋๋ผ ์ค๋ช ์ ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐฉ๋ฒ
n + m ๋ธ๋ก ์ค ์ผ๋ถ๊ฐ ๋๋ฝ๋ ๊ฒฝ์ฐ ๋ณต์์ด ํ์ํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ๋ธ๋ก๊ณผ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ด ๋ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋ธ๋ก ๋ฐ/๋๋ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ด ์๋ค๋ ๊ฒ์ ํด๋น x ๋ฐ/๋๋ p ๋ณ์๊ฐ ์ ๋ฐฉ์ ์์์ ์ ์ ์์์ ์๋ฏธํฉ๋๋ค.
๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋์ ๋ํ ๋ฐฉ์ ์์ ๋ชจ๋ ์ํ, ๋ฒ ํ, ๊ฐ๋ง, ๋ธํ ๊ฐ์ด ์์์ด๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ธ๋ก์ ํด๋นํ๋ ๋ชจ๋ x์ p๋ ์๋ ค์ง ๋ณ์์ด๊ณ ๋๋จธ์ง x์ p๋ ๋ฐฉ์ ์ ์์คํ ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ์๋ ค์ง์ง ์์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ ๋ธ๋ก 1, 2, 3๊ณผ ์ค๋ณต ์ฝ๋ ๋ธ๋ก 2๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉด i๋ฒ์งธ ๋จ์ด ๊ทธ๋ฃน์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์ ์ ์์คํ ์ด ์ฌ์ฉ๋ฉ๋๋ค(์ ์ ์๋ ํญ๋ชฉ์ ๋นจ๊ฐ์์ผ๋ก ํ์๋จ).
์ฐ๋ฆฌ๋ 4๊ฐ์ ๋ฏธ์ง์๊ฐ ์๋ 4๊ฐ์ ๋ฐฉ์ ์์ผ๋ก ๊ตฌ์ฑ๋ ์์คํ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฆ, ์ด ๋ฌธ์ ๋ฅผ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค!
์ด ๋ฐฉ์ ์ ์์คํ ์์ ๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋(n ๋ฐ์ดํฐ ๋ธ๋ก, m ์ค๋ณต ์ฝ๋ ๋ธ๋ก)์ ๋ฐ์ดํฐ ๋ณต๊ตฌ์ ๋ํ ์ฌ๋ฌ ๊ฐ์ง ๊ฒฐ๋ก ์ ์ป์ ์ ์์ต๋๋ค.
- m๊ฐ ์ดํ์ ๋ธ๋ก์ด ์์ค๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์์ต๋๋ค. m+1๊ฐ ์ด์์ ๋ธ๋ก์ด ์์ค๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค. ์ฆ, m + 1๊ฐ์ ๋ฏธ์ง์๋ก m ๋ฐฉ์ ์ ์์คํ ์ ํ ์ ์์ต๋๋ค.
- ํ๋์ ๋ฐ์ดํฐ ๋ธ๋ก์ด๋ผ๋ ๋ณต๊ตฌํ๋ ค๋ฉด ๋๋จธ์ง ๋ธ๋ก ์ค n๊ฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฉฐ ์ค๋ณต ์ฝ๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ ๋ฐ์ ๋น์ ์ด ์์์ผ ํ ๊ฒ
์์ ์ค๋ช ์์๋ ๊ณ ๋ คํด์ผ ํ ์ํ์ ๋ํ ๋ ๊น์ ํ๊ตฌ๊ฐ ํ์ํ ์ฌ๋ฌ ๊ฐ์ง ์ค์ํ ๋ฌธ์ ๋ฅผ ํผํ์ต๋๋ค. ํนํ ๋ค์ ์ฌํญ์ ๋ํด์๋ ์๋ฌด ๋ง๋ ํ์ง ์์ต๋๋ค.
- ๋ฆฌ๋-์๋ก๋ชฌ ์ฝ๋์ ๋ํ ๋ฐฉ์ ์ ์์คํ ์ ๋ฏธ์ง์์ ๋ชจ๋ ์กฐํฉ(m๊ฐ ์ดํ์ ๋ฏธ์ง์)์ ๋ํด (๊ณ ์ ํ) ํด๋ฅผ ๊ฐ์ ธ์ผ ํฉ๋๋ค. ์ด ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ํ, ๋ฒ ํ, ๊ฐ๋ง ๋ฐ ๋ธํ ๊ฐ์ด ์ ํ๋ฉ๋๋ค.
- ๋ฐฉ์ ์ ์์คํ ์ ์๋์ผ๋ก ๊ตฌ์ฑ๋๊ณ (์ฌ์ฉํ ์ ์๋ ๋ธ๋ก์ ๋ฐ๋ผ) ํ ์ ์์ด์ผ ํฉ๋๋ค.
- ์ฐ๋ฆฌ๋ Galois ํ๋๋ฅผ ๊ตฌ์ถํด์ผ ํฉ๋๋ค. ์ฃผ์ด์ง ๋จ์ด ํฌ๊ธฐ์ ๋ํด ๋ ์์์ ๋ํ ์ฐ์ฐ(+, -, *, /)์ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๊ธฐ์ฌ ๋์๋ ์ด๋ฌํ ์ค์ํ ๋ฌธ์ ์ ๊ดํ ๋ฌธํ์ ๋ํ ์ฐธ๊ณ ์๋ฃ๊ฐ ์์ต๋๋ค.
n๊ณผ m์ ์ ํ
์ค์ ๋ก n๊ณผ m์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์ค์ ๋ก ๋ฐ์ดํฐ ์ ์ฅ ์์คํ ์์๋ ๊ณต๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด ์ค๋ณต ์ฝ๋๊ฐ ์ฌ์ฉ๋๋ฏ๋ก m์ ํญ์ n๋ณด๋ค ์์ ๊ฐ์ผ๋ก ์ ํ๋ฉ๋๋ค. ํน์ ๊ฐ์ ๋ค์์ ํฌํจํ ์ฌ๋ฌ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
- ๋ฐ์ดํฐ ์ ์ฅ์ ์ ๋ขฐ์ฑ. m์ด ํด์๋ก ์ด์๋จ์ ์ ์๋ ๋์คํฌ ์ฅ์ ํ์, ์ฆ ์ ๋ขฐ์ฑ์ด ๋์์ง๋๋ค.
- ์ค๋ณต ์คํ ๋ฆฌ์ง. m/n ๋น์จ์ด ๋์์๋ก ์คํ ๋ฆฌ์ง ์ค๋ณต์ฑ์ด ๋์์ง๊ณ ์์คํ ๋น์ฉ์ด ๋์์ง๋๋ค.
- ์์ฒญ ์ฒ๋ฆฌ ์๊ฐ. n + m์ ํฉ์ด ํด์๋ก ์์ฒญ์ ๋ํ ์๋ต ์๊ฐ์ด ๊ธธ์ด์ง๋๋ค. ๋ณต๊ตฌ ์ค ๋ฐ์ดํฐ๋ฅผ ์ฝ์ผ๋ ค๋ฉด n๊ฐ์ ์๋ก ๋ค๋ฅธ ๋์คํฌ์ ์ ์ฅ๋ n๊ฐ์ ๋ธ๋ก์ ์ฝ์ด์ผ ํ๋ฏ๋ก ์ฝ๊ธฐ ์๊ฐ์ ๊ฐ์ฅ ๋๋ฆฐ ๋์คํฌ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
๋ํ ์ฌ๋ฌ DC์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด n๊ณผ m ์ ํ์ ์ถ๊ฐ ์ ํ์ด ์ ์ฉ๋ฉ๋๋ค. ์ฆ, 1๊ฐ์ DC๊ฐ ๊บผ์ง ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ์ฝ์ ์ ์์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด 3๊ฐ์ DC์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒฝ์ฐ ๋ค์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ด์ผ ํฉ๋๋ค: m >= n/2, ๊ทธ๋ ์ง ์์ผ๋ฉด 1๊ฐ์ DC๊ฐ ๊บผ์ง๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ ์ํฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
3. LRC - ์ง์ญ ์ฌ๊ฑด ์ฝ๋
๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ค๋ฉด n๊ฐ์ ์์ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด๋ ๋ถ์ฐ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ์์คํ ์ ๋งค์ฐ ์ค์ํ ๋จ์ ์ ๋๋ค. ํ๋์ ์์๋ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ๋ ค๋ฉด ๋๋ถ๋ถ์ ๋ค๋ฅธ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ผ ํ๋ฏ๋ก ๋์คํฌ์ ๋คํธ์ํฌ์ ํฐ ์ถ๊ฐ ๋ถํ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ ํ ๋์คํฌ์ ์ค๋ฅ ๋๋ ๊ณผ๋ถํ๋ก ์ธํด ํ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ก์ธ์คํ ์ ์๋ ๊ฒ์ ๋๋ค. ์ด(๊ฐ์ฅ ์ผ๋ฐ์ ์ธ) ๊ฒฝ์ฐ์ ๋ฐ์ดํฐ ๋ณต๊ตฌ์ ๋ํ ์ด๊ณผ ๋ก๋๋ฅผ ์ค์ด๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น? ์ด ๋ชฉ์ ์ ์ํด ํน๋ณํ LRC ์ค๋ณต ์ฝ๋๊ฐ ์์ต๋๋ค.
LRC(Local Reconstruction Codes)๋ Windows Azure Storage์์ ์ฌ์ฉํ๊ธฐ ์ํด Microsoft๊ฐ ๊ฐ๋ฐํ ์ค๋ณต ์ฝ๋์ ๋๋ค. LRC์ ์์ด๋์ด๋ ์ต๋ํ ๊ฐ๋จํฉ๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ ๊ฐ(๋๋ ๊ทธ ์ด์) ๊ทธ๋ฃน์ผ๋ก ๋๋๊ณ ๊ฐ ๊ทธ๋ฃน์ ๋ํ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ์ผ๋ถ๋ฅผ ๋ณ๋๋ก ์ฝ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ผ๋ถ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ธ๋ก(LRC์์๋ ๊ธ๋ก๋ฒ ์ค๋ณต ์ฝ๋๋ผ๊ณ ํจ)์ ์ฌ์ฉํ์ฌ ๊ณ์ฐ๋๊ณ ์ผ๋ถ๋ ๋ ๋ฐ์ดํฐ ๋ธ๋ก ๊ทธ๋ฃน ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฐ๋ฉ๋๋ค(๋ก์ปฌ ์ค๋ณต ์ฝ๋๋ผ๊ณ ํจ).
LRC๋ ์ธ ๊ฐ์ ์ซ์๋ก ํ์๋ฉ๋๋ค: nrl, ์ฌ๊ธฐ์ n์ ๋ฐ์ดํฐ ๋ธ๋ก์ ์, r์ ๊ธ๋ก๋ฒ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ์, l์ ๋ก์ปฌ ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ์์ ๋๋ค. ํ๋์ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฌ์ฉํ ์ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ผ๋ ค๋ฉด n/l ๋ธ๋ก๋ง ์ฝ์ด์ผ ํฉ๋๋ค. ์ด๋ ๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋๋ณด๋ค l๋ฐฐ ์ ์ต๋๋ค.
์๋ฅผ ๋ค์ด, LRC 6-2-2 ๋ฐฉ์์ ๊ณ ๋ คํด ๋ณด์ธ์. X1โX6 โ ๋ฐ์ดํฐ ๋ธ๋ก 6๊ฐ, P1, P2 โ ์ ์ญ ์ค๋ณต ๋ธ๋ก 2๊ฐ, P3, P4 โ ๋ก์ปฌ ์ค๋ณต ๋ธ๋ก 2๊ฐ.
์ค๋ณต ์ฝ๋ ๋ธ๋ก P1, P2๋ ๋ชจ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฌ์ฉํ์ฌ ๊ณ์ฐ๋ฉ๋๋ค. ์ค๋ณต ์ฝ๋ ๋ธ๋ก P3 - ๋ฐ์ดํฐ ๋ธ๋ก X1-X3์ ์ฌ์ฉํ๊ณ , ์ค๋ณต ์ฝ๋ ๋ธ๋ก P4 - ๋ฐ์ดํฐ ๋ธ๋ก X4-X6์ ์ฌ์ฉํฉ๋๋ค.
๋๋จธ์ง๋ Reed-Solomon ์ฝ๋์ ์ ์ฌํ๊ฒ LRC์์ ์ํ๋ฉ๋๋ค. ์ค๋ณต ์ฝ๋ ๋ธ๋ก์ ๋จ์ด ์๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ์ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ซ์ ์ํ, ๋ฒ ํ, ๊ฐ๋ง, ๋ธํ๋ฅผ ์ ํํ๋ ค๋ฉด ๋ฐ์ดํฐ ๋ณต๊ตฌ ๊ฐ๋ฅ์ฑ(์ฆ, ๋ฐฉ์ ์ ์์คํ
ํ๊ธฐ)์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ๋ฌ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ํ ์ค์ ๋ก XOR ์ฐ์ฐ์ ๋ก์ปฌ ์ค๋ณต ์ฝ๋ P3, P4๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
LRC์ ๋ฐฉ์ ์ ์์คํ ์์ ์ฌ๋ฌ ๊ฐ์ง ๊ฒฐ๋ก ์ ์ป์ ์ ์์ต๋๋ค.
- 1๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ณต๊ตฌํ๋ ค๋ฉด n/l ๋ธ๋ก(์ด ์์์๋ n/2)์ ์ฝ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค.
- r + l ๋ธ๋ก์ ์ฌ์ฉํ ์ ์๊ณ ๋ชจ๋ ๋ธ๋ก์ด ํ๋์ ๊ทธ๋ฃน์ ํฌํจ๋์ด ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค. ์ด๋ ์๋ฅผ ๋ค์ด ์ค๋ช ํ๊ธฐ ์ฝ์ต๋๋ค. ๋ธ๋ก X1โX3 ๋ฐ P3์ ์ฌ์ฉํ ์ ์๊ฒ ํ์ญ์์ค. ์ด๋ ๋์ผํ ๊ทธ๋ฃน์ r + l ๋ธ๋ก(์ด ๊ฒฝ์ฐ 4)์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ํ ์ ์๋ 3๊ฐ์ ๋ฏธ์ง์๋ฅผ ๊ฐ์ง 4๊ฐ์ ๋ฐฉ์ ์์ผ๋ก ๊ตฌ์ฑ๋ ์์คํ ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
- r + l ๋ธ๋ก์ ์ฌ์ฉํ ์ ์๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒฝ์ฐ(๊ฐ ๊ทธ๋ฃน์์ ํ๋ ์ด์์ ๋ธ๋ก์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ)์๋ LRC์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ LRC๋ ๋จ์ผ ์ค๋ฅ ์ดํ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐ ๋ฆฌ๋ ์๋ก๋ชฌ ์ฝ๋๋ณด๋ค ์ฑ๋ฅ์ด ๋ฐ์ด๋ฉ๋๋ค. Reed-Solomon ์ฝ๋์์๋ ํ ๋ธ๋ก์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ค๋ฉด n ๋ธ๋ก์ ์ฌ์ฉํด์ผ ํ๋ฉฐ, LRC์์๋ ํ ๋ธ๋ก์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ค๋ฉด n/l ๋ธ๋ก(์์์๋ n/2)๋ง ์ฌ์ฉํ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ๋ฐ๋ฉด LRC๋ ์ต๋ ํ์ฉ ์ค๋ฅ ์ ์ธก๋ฉด์์ Reed-Solomon ์ฝ๋๋ณด๋ค ์ด๋ฑํฉ๋๋ค. ์์ ์์์ Reed-Solomon ์ฝ๋๋ ์์์ 4๊ฐ ์ค๋ฅ์ ๋ํด ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์์ผ๋ฉฐ, LRC์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์๋ ๊ฒฝ์ฐ 2๊ฐ ์ค๋ฅ์ 4๊ฐ์ง ์กฐํฉ์ด ์์ต๋๋ค.
๋ ์ค์ํ ๊ฒ์ ํน์ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ์ข ์ข LRC๊ฐ ์ ๊ณตํ๋ ์ด๊ณผ ๋ก๋ ์ ๊ฐ ํจ๊ณผ๊ฐ ์ฝ๊ฐ ๋ ์์ ์ ์ธ ์คํ ๋ฆฌ์ง๋ณด๋ค ์ค์ํฉ๋๋ค.
4. ๊ธฐํ ์ค๋ณต ์ฝ๋
Reed-Solomon ๋ฐ LRC ์ฝ๋ ์ธ์๋ ๋ค๋ฅธ ์ค๋ณต ์ฝ๋๊ฐ ๋ง์ด ์์ต๋๋ค. ๋ค๋ฅธ ์ค๋ณต ์ฝ๋๋ ๋ค๋ฅธ ์ํ์ ์ฌ์ฉํฉ๋๋ค. ๋ค์์ ๊ธฐํ ์ค๋ณต ์ฝ๋์ ๋๋ค.
- XOR ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ค๋ณต ์ฝ๋์
๋๋ค. n๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ํด XOR ์ฐ์ฐ์ ์ํํ์ฌ 1๋ธ๋ก์ ์ค๋ณต ์ฝ๋, ์ฆ n+1 ๋ฐฉ์(n๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก, 1๊ฐ์ ์ค๋ณต ์ฝ๋)์ ์ป๋๋ค. ๋ค์์์ ์ฌ์ฉ๋จ
RAID 5 , ๋ฐ์ดํฐ ๋ธ๋ก๊ณผ ์ค๋ณต ์ฝ๋๊ฐ ์ด๋ ์ด์ ๋ชจ๋ ๋์คํฌ์ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ธฐ๋ก๋ฉ๋๋ค. - XOR ์ฐ์ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ง์-ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. 2๊ฐ์ ์ค๋ณต ์ฝ๋ ๋ธ๋ก, ์ฆ n+2 ์ฒด๊ณ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- XOR ์ฐ์ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ STAR ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. 3๊ฐ์ ์ค๋ณต ์ฝ๋ ๋ธ๋ก, ์ฆ n+3 ์ฒด๊ณ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- ํผ๋ผ๋ฏธ๋ ์ฝ๋๋ Microsoft์ ๋ ๋ค๋ฅธ ์ค๋ณต ์ฝ๋์ ๋๋ค.
5. Yandex์์ ์ฌ์ฉ
๋ค์์ Yandex ์ธํ๋ผ ํ๋ก์ ํธ์์๋ ์์ ์ ์ธ ๋ฐ์ดํฐ ์ ์ฅ์ ์ํด ์ค๋ณต ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ ๋ช ๊ฐ์ง ์๊ฐ ์์ด์.
- ๊ธฐ์ฌ ์์ ๋ถ๋ถ์ ์ด MDS ๋ด๋ถ ๊ฐ์ฒด ์ ์ฅ์์ ๋๋ค.
YT โ Yandex์ MapReduce ์์คํ .YDB (Yandex ๋ฐ์ดํฐ๋ฒ ์ด์ค) - ์๋ก์ดSQL ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค.
MDS๋ LRC ์ค๋ณต ์ฝ๋, 8-2-2 ์ฒด๊ณ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ค๋ณต ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ 12๊ฐ์ ์๋ก ๋ค๋ฅธ DC(๊ฐ DC์ 3๊ฐ์ ์๋ฒ)์ ์๋ก ๋ค๋ฅธ ์๋ฒ์ ์๋ 4๊ฐ์ ์๋ก ๋ค๋ฅธ ๋์คํฌ์ ๊ธฐ๋ก๋ฉ๋๋ค. ์ด์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
YT๋ ์ต์ด๋ก ๊ตฌํํ Reed-Solomon ์ฝ๋(Scheme 6-3)์ LRC ์ค๋ณต ์ฝ๋(Scheme 12-2-2)๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ฉฐ LRC๊ฐ ์ ํธ๋๋ ์ ์ฅ ๋ฐฉ๋ฒ์ ๋๋ค.
YDB๋ ์ง์-ํ์ ๊ธฐ๋ฐ ์ค๋ณต ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค(๊ทธ๋ฆผ 4-2). ์ด๋ฏธ YDB์ ์ค๋ณต ์ฝ๋์ ๋ํด
์๋ก ๋ค๋ฅธ ์ค๋ณต ์ฝ๋ ๊ตฌ์ฑํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์์คํ ์๊ตฌ ์ฌํญ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด MDS์์๋ LRC๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ํ ๋ฒ์ 3๊ฐ์ DC์ ๋ฐฐ์น๋ฉ๋๋ค. DC ์ค ํ๋๊ฐ ์คํจํ๋๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ ์ํ๋ก ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ DC๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์ก์ธ์คํ ์ ์๋ ๋ธ๋ก์ ์๊ฐ ํ์ฉ ๊ฐ๋ฅํ ์์ค์ ๋์ง ์๋๋ก DC ๊ฐ์ ๋ธ๋ก์ ๋ถ์ฐํด์ผ ํฉ๋๋ค. 1-8-2 ๋ฐฉ์์์๋ ๊ฐ DC์ 2๊ฐ์ ๋ธ๋ก์ ๋ฐฐ์นํ ์ ์์ผ๋ฉฐ, DC๊ฐ ๊บผ์ง๋ฉด 4๊ฐ์ ๋ธ๋ก์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค. 4๊ฐ์ DC์ ๋ฐฐ์นํ ๋ ์ด๋ค ๋ฐฉ์์ ์ ํํ๋ ์ด์จ๋ (r + l) / n >= 3๊ฐ ๋์ด์ผ ํฉ๋๋ค. ์ฆ, ์คํ ๋ฆฌ์ง ์ค๋ณต์ฑ์ ์ต์ 0,5%๊ฐ ๋ฉ๋๋ค.
YT์์๋ ์ํฉ์ด ๋ค๋ฆ ๋๋ค. ๊ฐ YT ํด๋ฌ์คํฐ๋ ์์ ํ 1 DC(๋ค๋ฅธ DC์ ๋ค๋ฅธ ํด๋ฌ์คํฐ)์ ์์นํ๋ฏ๋ก ๊ทธ๋ฌํ ์ ํ์ด ์์ต๋๋ค. 12-2-2 ๋ฐฉ์์ 33%์ ์ค๋ณต์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ฆ, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ๋ ์ ๋ ดํ๊ณ MDS ๋ฐฉ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ต๋ 4๊ฐ์ ๋์ ๋์คํฌ ์ค๋จ์๋ ๊ฒฌ๋ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ฒ๋ฆฌ ์์คํ ์์ ์ค๋ณต ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์๋ ๋ฐ์ดํฐ ๋ณต๊ตฌ์ ๋์์ค, ์ฟผ๋ฆฌ ์คํ ์๊ฐ์ ๋ํ ๋ณต๊ตฌ์ ์ํฅ, ๋ฐ์ดํฐ ๊ธฐ๋ก ๊ธฐ๋ฅ ๋ฑ ๋ ๋ง์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ๊ณผ ๊ธฐํ ๊ธฐ๋ฅ์ ๋ํด ๋ณ๋๋ก ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ์ฃผ์ ๊ฐ ํฅ๋ฏธ๋ก์ธ ๊ฒฝ์ฐ ์ค์ ์ค๋ณต ์ฝ๋ ์ฌ์ฉ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
6. ๋งํฌ
- Reed-Solomon ์ฝ๋์ Galois ํ๋์ ๊ดํ ์ผ๋ จ์ ๊ธฐ์ฌ:
https://habr.com/ru/company/yadro/blog/336286/
https://habr.com/ru/company/yadro/blog/341506/
์ ๊ทผ ๊ฐ๋ฅํ ์ธ์ด๋ก ์ํ์ ๋ ๊น์ด ์ดํด๋ด ๋๋ค. - LRC์ ๊ดํ Microsoft ๊ธฐ์ฌ:
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/LRC12-cheng20webpage.pdf
์น์ 2์์๋ ์ด๋ก ์ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ณ ์ค์ LRC ๊ฒฝํ์ ๋ ผ์ํฉ๋๋ค. - ์ง์-ํ์ ๋ฐฉ์:
https://people.eecs.berkeley.edu/~kubitron/courses/cs262a-F12/handouts/papers/p245-blaum.pdf - STAR ๋ฐฉ์:
https://www.usenix.org/legacy/event/fast05/tech/full_papers/huang/huang.pdf - ํผ๋ผ๋ฏธ๋ ์ฝ๋:
https://www.microsoft.com/en-us/research/publication/pyramid-codes-flexible-schemes-to-trade-space-for-access-efficiency-in-reliable-data-storage-systems/ - MDS์ ์ค๋ณต ์ฝ๋:
https://habr.com/ru/company/yandex/blog/311806 - YT์ ์ค๋ณต ์ฝ๋:
https://habr.com/ru/company/yandex/blog/311104/ - YDB์ ์ค๋ณต ์ฝ๋:
https://www.youtube.com/watch?v=dCpfGJ35kK8
์ถ์ฒ : habr.com