5.1 ๋ฐ์ดํฐ ๋ฐฐํฌ
ํด๋ฌ์คํฐ ๋ ธ๋๋ค ์ฌ์ด์์ ํค์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๋ถ๋ฐฐ๋๋์ง ์๊ฐํด ๋ด ์๋ค. Cassandra๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ๋ฐฐํฌ ์ ๋ต์ ์ค์ ํ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ ๋ต์ md5 ํค ๊ฐ(์์ ํํฐ์ ๋)์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ๋ ๋ฒ์งธ๋ ํค ์์ฒด์ ๋นํธ ํํ์ธ ์์ ๋งํฌ์ (๋ฐ์ดํธ ์์ ํํฐ์ ๋)์ ๊ณ ๋ คํฉ๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ ๋ต์ด ๋ ๋ง์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์๋ฒ ๊ฐ ๋ฐ์ดํฐ์ ๊ท ์ผํ ๋ถํฌ ๋ฐ ์ด๋ฌํ ๋ฌธ์ ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ ๋ฒ์งธ ์ ๋ต์ ์๋ฅผ ๋ค์ด ๊ฐ๊ฒฉ ์ฟผ๋ฆฌ(๋ฒ์ ์ค์บ)๊ฐ ํ์ํ ๊ฒฝ์ฐ์ ๊ฐ์ด ๋๋ฌธ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ ๋ต์ ์ ํ์ ํด๋ฌ์คํฐ ์์ฑ ์ ์ ์ด๋ฃจ์ด์ง๋ฉฐ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๋ค์ ๋ก๋ํ์ง ์๊ณ ๋ ๋ณ๊ฒฝํ ์ ์๋ค๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค.
Cassandra๋ ์ผ๊ด๋ ํด์ฑ์ด๋ผ๋ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ ธ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐํ๊ณ ์ ๋ ธ๋๊ฐ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ๋ ๋ ์ ์ก๋๋ ๋ฐ์ดํฐ ์์ด ์ ๋๋ก ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ๊ฐ ๋ ธ๋์๋ ๋ชจ๋ md5 ํค ๊ฐ ์ธํธ๋ฅผ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ๋ ๋ ์ด๋ธ(ํ ํฐ)์ด ํ ๋น๋ฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ RandomPartitioner๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๊ณ ๋ คํด๋ณด์.
๋ด๊ฐ ๋งํ๋ฏ์ด RandomPartitioner๋ ๊ฐ ํค์ ๋ํด 128๋นํธ md5๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์ด๋ค ๋ ธ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ง ๊ฒฐ์ ํ๊ธฐ ์ํด ๊ฐ์ฅ ์์ ๊ฒ๋ถํฐ ๊ฐ์ฅ ํฐ ๊ฒ๊น์ง ๋ ธ๋์ ๋ชจ๋ ๋ ์ด๋ธ์ ์ดํด๋ณด๊ณ ๋ ์ด๋ธ์ ๊ฐ์ด md5 ํค์ ๊ฐ๋ณด๋ค ์ปค์ง๋ฉด ์ด ๋ ธ๋์ ํ์ ๋ ธ๋ ์(๋ ์ด๋ธ ์์๋๋ก)๊ฐ ์ ์ฅ์ ์ํด ์ ํ๋ฉ๋๋ค. ์ ํํ ๋ ธ๋์ ์ด ์๋ ๋ณต์ ๊ณ์์ ๊ฐ์์ผ ํฉ๋๋ค. ๋ณต์ ์์ค์ ๊ฐ ํค์คํ์ด์ค์ ๋ํด ์ค์ ๋๋ฉฐ ๋ฐ์ดํฐ์ ์ค๋ณต์ฑ(๋ฐ์ดํฐ ์ค๋ณต์ฑ)์ ์กฐ์ ํ ์ ์์ต๋๋ค.

ํด๋ฌ์คํฐ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ๋จผ์ ๋ ์ด๋ธ์ ์ง์ ํด์ผ ํฉ๋๋ค. ์ด ๋ ์ด๋ธ๊ณผ ๋ค์ ๋ ์ด๋ธ ์ฌ์ด์ ๊ฐ๊ฒฉ์ ์ปค๋ฒํ๋ ํค์ ๋ฐฑ๋ถ์จ์ ๋ ธ๋์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ์์ ๊ฒฐ์ ํฉ๋๋ค. ํด๋ฌ์คํฐ์ ์ ์ฒด ๋ ์ด๋ธ ์งํฉ์ ๋ง์ด๋ผ๊ณ ํฉ๋๋ค.
๋ค์์ ๋ด์ฅ๋ nodetool ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ท ์ผํ ๊ฐ๊ฒฉ์ ๋ ์ด๋ธ์ด ์๋ 6๊ฐ ๋ ธ๋์ ํด๋ฌ์คํฐ ๋ง์ ํ์ํ๋ ๊ทธ๋ฆผ์ ๋๋ค.

5.2 ์ฐ๊ธฐ ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ
Cassandra ํด๋ฌ์คํฐ ๋ ธ๋๋ ๋์ผํ๋ฉฐ ํด๋ผ์ด์ธํธ๋ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ๋ฅผ ์ํด ์ด๋ค ์ค ํ๋์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์์ฒญ์ ์กฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉฐ, ๊ทธ ๋์ ๋ฐ์ดํฐ๊ฐ ์์ด์ผ ํ๋ ๋ ธ๋์ ํค์ ๋์์ ๋ฐ์ ์๋ฒ๊ฐ ์ด๋ฌํ ๋ ธ๋์ ์์ฒญ์ ๋ณด๋ ๋๋ค. ์กฐ์ ์ ์ํํ๋ ๋ ธ๋๋ฅผ ์ฝ๋๋ค์ดํฐ๋ผ๊ณ ํ๊ณ , ์ฃผ์ด์ง ํค๋ก ๋ ์ฝ๋๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ ํ๋ ๋ ธ๋๋ฅผ ๋ ํ๋ฆฌ์นด ๋ ธ๋๋ผ๊ณ ํฉ๋๋ค. ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ณต์ ๋ณธ ๋ ธ๋ ์ค ํ๋๋ ์ฝ๋๋ค์ดํฐ๊ฐ ๋ ์ ์์ต๋๋ค. ์ฝ๋๋ค์ดํฐ๋ ํค, ๋งํฌ์ ๋ฐ ๋ ์ด๋ธ์๋ง ์์กดํฉ๋๋ค.
์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ์ ๋ํ ๊ฐ ์์ฒญ์ ๋ํด ๋ฐ์ดํฐ ์ผ๊ด์ฑ ์์ค์ ์ค์ ํ ์ ์์ต๋๋ค.
์ฐ๊ธฐ์ ๊ฒฝ์ฐ ์ด ์์ค์ ์ฌ์ฉ์์๊ฒ ์ ์ด๊ถ์ ๋ฐํํ๊ธฐ ์ ์ ์์ (๊ธฐ๋ก๋ ๋ฐ์ดํฐ)์ ์ฑ๊ณต์ ์ธ ์๋ฃ ํ์ธ์ ๊ธฐ๋ค๋ฆฌ๋ ๋ณต์ ๋ณธ ๋ ธ๋ ์์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ ์ฝ๋์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ์ผ๊ด์ฑ ์์ค์ด ์์ต๋๋ค.
- ONE - ์ฝ๋๋ค์ดํฐ๊ฐ ๋ชจ๋ ๋ณต์ ๋ณธ ๋ ธ๋์ ์์ฒญ์ ๋ณด๋ด์ง๋ง ์ฒซ ๋ฒ์งธ ๋ ธ๋์ ํ์ธ์ ๊ธฐ๋ค๋ฆฐ ํ ์ฌ์ฉ์์๊ฒ ์ ์ด๊ถ์ ๋ฐํํฉ๋๋ค.
- TWO - ๋์ผํ์ง๋ง ์กฐ์ ์๋ ์ ์ด๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์ฒ์ ๋ ๋ ธ๋์ ํ์ธ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
- THREE - ๋น์ทํ์ง๋ง ์กฐ์ ์๋ ์ ์ด๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์ฒ์ ์ธ ๋ ธ๋์ ํ์ธ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
- QUORUM - ์ฟผ๋ผ์ด ์์ง๋ฉ๋๋ค. ์ฝ๋๋ค์ดํฐ๋ ๋ณต์ ๋ ธ๋์ ์ ๋ฐ ์ด์, ์ฆ ๋ผ์ด๋(N / 2) + 1์์ ๋ ์ฝ๋ ํ์ธ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์ N์ ๋ณต์ ์์ค์ ๋๋ค.
- LOCAL_QUORUM - ์ฝ๋๋ค์ดํฐ๊ฐ ์ฝ๋๋ค์ดํฐ๊ฐ ์๋ ๋์ผํ ๋ฐ์ดํฐ ์ผํฐ์ ์๋ ๋ณต์ ๋ณธ ๋ ธ๋์ ์ ๋ฐ ์ด์์์ ํ์ธ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค(์์ฒญ๋ง๋ค ๋ค๋ฅผ ์ ์์). ๋ค๋ฅธ ๋ฐ์ดํฐ ์ผํฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ์ง์ฐ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๋ง์ ๋ฐ์ดํฐ ์ผํฐ์ ํจ๊ป ์์ ํ๋ ๋ฌธ์ ๋ ์ด ๋ฌธ์์์ ํต๊ณผ์ ์ผ๋ก ๊ณ ๋ ค๋ฉ๋๋ค.
- EACH_QUORUM - ์ฝ๋๋ค์ดํฐ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ ๋ฐ์ดํฐ ์ผํฐ์ ๋ณต์ ๋ ธ๋ ์ ๋ฐ ์ด์์์ ํ์ธ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
- ALL - ์ฝ๋๋ค์ดํฐ๋ ๋ชจ๋ ๋ณต์ ๋ณธ ๋ ธ๋์ ํ์ธ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
- ANY - ๋ชจ๋ ๋ณต์ ๋ณธ ๋ ธ๋๊ฐ ์๋ตํ์ง ์๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๋ฅผ ์ธ ์ ์์ต๋๋ค. ์ฝ๋๋ค์ดํฐ๋ ๋ณต์ ๋ ธ๋ ์ค ํ๋์ ์ฒซ ๋ฒ์งธ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ์ฝ๋๋ค์ดํฐ์์ ์์๋ ํธ๋์คํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.

5.3 ์ฝ์ ๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ
์ฝ๊ธฐ์ ๊ฒฝ์ฐ ์ผ๊ด์ฑ ์์ค์ ์ฝ์ ๋ณต์ ๋ณธ ๋ ธ๋ ์์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ฝ๊ธฐ์๋ ๋ค์๊ณผ ๊ฐ์ ์ผ๊ด์ฑ ์์ค์ด ์์ต๋๋ค.
- ONE - ์ฝ๋๋ค์ดํฐ๊ฐ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ณต์ ๋ณธ ๋ ธ๋์ ์์ฒญ์ ๋ณด๋ ๋๋ค. ๋๋จธ์ง ๋ณต์ ๋ณธ๋ cassandra ๊ตฌ์ฑ์ ์ง์ ๋ ํ๋ฅ ๋ก ์ฝ๊ธฐ ๋ณต๊ตฌ๋ฅผ ์ํด ์ฝ์ต๋๋ค.
- TWO ๋ ๊ฐ์ง๋ง ์ฝ๋๋ค์ดํฐ๊ฐ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ ธ๋์ ์์ฒญ์ ๋ณด๋ ๋๋ค. ํ์์คํฌํ๊ฐ ๊ฐ์ฅ ํฐ ๊ฐ์ด ์ ํ๋ฉ๋๋ค.
- THREE - ์ด์ ์ต์ ๊ณผ ์ ์ฌํ์ง๋ง ์ธ ๊ฐ์ ๋ ธ๋๊ฐ ์์ต๋๋ค.
- QUORUM - ์ฟผ๋ผ์ด ์์ง๋ฉ๋๋ค. ์ฆ, ์ฝ๋๋ค์ดํฐ๊ฐ ๋ณต์ ๋ ธ๋์ ์ ๋ฐ ์ด์, ์ฆ ๋ผ์ด๋(N / 2) + 1์ ์์ฒญ์ ๋ณด๋ ๋๋ค. ์ฌ๊ธฐ์ N์ ๋ณต์ ์์ค์ ๋๋ค.
- LOCAL_QUORUM - ์กฐ์ ์ด ์ด๋ฃจ์ด์ง๋ ๋ฐ์ดํฐ ์ผํฐ์์ ์ฟผ๋ผ์ด ์์ง๋๊ณ ์ต์ ํ์์คํฌํ๊ฐ ์๋ ๋ฐ์ดํฐ๊ฐ ๋ฐํ๋ฉ๋๋ค.
- EACH_QUORUM - ์ฝ๋๋ค์ดํฐ๋ ๊ฐ ๋ฐ์ดํฐ ์ผํฐ์ ์ ์กฑ์ ํ์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค.
- ALL - ์ฝ๋๋ค์ดํฐ๋ ๋ชจ๋ ๋ณต์ ๋ณธ ๋ ธ๋์์ ์ฝ์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค.

๋ฐ๋ผ์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ ์ ์๊ฐ ์ง์ฐ์ ์กฐ์ ํ๊ณ ๊ฐ ์์ ์ ํ์ ๊ฐ์ฉ์ฑ(availability)๋ฟ๋ง ์๋๋ผ ์ผ๊ด์ฑ(tune consistency)์ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ค์ ๋ก ๊ฐ์ฉ์ฑ์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ์ ์ผ๊ด์ฑ ์์ค๊ณผ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์์ต๋๋ค. ์ด๋ ์ผ๋ง๋ ๋ง์ ๋ณต์ ๋ณธ ๋ ธ๋๊ฐ ์ค๋จ๋๊ณ ์ฌ์ ํ ํ์ธ๋ ์ ์๋์ง๋ฅผ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฐ๊ธฐ ์น์ธ์ด ์ค๋ ๋ ธ๋์ ์์ ์ฝ๊ธฐ๊ฐ ์ด๋ฃจ์ด์ง ๋ ธ๋์ ์๋ฅผ ๋ํ ๊ฐ์ด ๋ณต์ ์์ค๋ณด๋ค ํฌ๋ฉด ์ฐ๊ธฐ ํ์ ํญ์ ์ ๊ฐ์ ์ฝ์ ๊ฒ์ด๋ผ๋ ๋ณด์ฅ์ด ์์ต๋๋ค. ๊ฐํ ์ผ๊ด์ฑ (๊ฐํ ์ผ๊ด์ฑ)์ด๋ผ๊ณ ํฉ๋๋ค. ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ด ์์ผ๋ฉด ์ฝ๊ธฐ ์์ ์ด ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์ด์จ๋ ๊ฐ์ ๊ฒฐ๊ตญ ๋ณต์ ๋ณธ ๊ฐ์ ์ ํ๋์ง๋ง ์กฐ์ ๋๊ธฐ๊ฐ ๋๋ ํ์๋ง ์ ํ๋ฉ๋๋ค. ์ด ์ ํ๋ฅผ ์ต์ข ์ผ๊ด์ฑ์ด๋ผ๊ณ ํฉ๋๋ค. ์ฐ๊ธฐ ์์ ์ ๋ชจ๋ ๋ณต์ ๋ณธ ๋ ธ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์์ ์ฝ๊ธฐ ๋ฐ ์ํธ๋กํผ ๋ฐฉ์ง ๋ ธ๋ ๋ณต๊ตฌ์ ๊ฐ์ ์กฐ๋ง๊ฐ ๋ณต๊ตฌ ๋๊ตฌ๊ฐ ์๋ํ๊ฒ ๋ฉ๋๋ค. ์ด์ ๋ํด์๋ ๋์ค์ ์์ธํ ์ค๋ช ํฉ๋๋ค.
๋ฐ๋ผ์ QUORUM ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ผ๊ด์ฑ ์์ค์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ด ํญ์ ์ ์ง๋๋ฉฐ ์ด๋ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๋๊ธฐ ์๊ฐ ๊ฐ์ ๊ท ํ์ด ๋ฉ๋๋ค. ALL ์ฐ๊ธฐ ๋ฐ ONE ์ฝ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ด ์ ์ง๋๊ณ ์ฝ๊ธฐ๊ฐ ๋ ๋น ๋ฅด๊ณ ์ฌ์ฉ ๊ฐ๋ฅํด์ง๋๋ค. ์ฆ, ์ฝ๊ธฐ๊ฐ ์ฌ์ ํ ์๋ฃ๋๋ ์คํจํ ๋ ธ๋์ ์๊ฐ QUORUM๋ณด๋ค ํด ์ ์์ต๋๋ค.
์ฐ๊ธฐ ์์ ์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ณต์ ์์ ์ ๋ ธ๋๊ฐ ํ์ํฉ๋๋ค. ONE์ ์ฐ๊ณ ALL์ ์ฝ์ ๋ ์๊ฒฉํ ์ผ๊ด์ฑ์ด ์์ผ๋ฉฐ ์ฐ๊ธฐ ์์ ์ด ์๋ฒ ์ค ์ ์ด๋ ํ๋์์ ๋ฐ์ํ์์ ํ์ธํ๋ ๊ฒ๋ง์ผ๋ก ์ถฉ๋ถํ๊ธฐ ๋๋ฌธ์ ์ฐ๊ธฐ ์์ ์ด ๋ ๋นจ๋ผ์ง๊ณ ์ฐ๊ธฐ ๊ฐ์ฉ์ฑ์ด ์ปค์ง๋๋ค. ์ฝ๊ธฐ ์๋๊ฐ ๋๋ฆฌ๊ณ ๋ชจ๋ ๋ณต์ ๋ณธ ๋ ธ๋๊ฐ ํ์ํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ์๊ฒฉํ ์ผ๊ด์ฑ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ ์๋๋ฅผ ๋์ด๊ณ ์ผ๊ด์ฑ ์์ค์ ๋ ๋ฎ๊ฒ ์ค์ ํ์ฌ ๊ฐ์ฉ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.